「R」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
 
(未顯示同一使用者於中間所作的 3 次修訂)
行 1: 行 1:
'''R'''是一套程式語言,主力在統計運算。
'''R'''是一套程式語言,主力在統計運算。
== 安裝 ==
<syntaxhighlight lang="bash">
sudo apt install -y r-base
</syntaxhighlight>


== 範例 ==
== 範例 ==
先載入ggplot2:
<syntaxhighlight lang="r">
library(ggplot2)
</syntaxhighlight>
接著讀取資料,並且先依照欄位分類:


<syntaxhighlight lang="r">
<syntaxhighlight lang="r">
行 7: 行 21:
colnames(df) <- c('host', 'ident', 'authuser', 'date', 'timezone', 'request', 'status', 'bytes', 'referer', 'useragent', 'cipher')
colnames(df) <- c('host', 'ident', 'authuser', 'date', 'timezone', 'request', 'status', 'bytes', 'referer', 'useragent', 'cipher')
head(df)
head(df)
</syntaxhighlight>
接下來把時間的部份轉成內部用的時間格式:
<syntaxhighlight lang="r">
df$date=as.POSIXct(df$date, tryFormats=("[%d/%b/%Y:%H:%M:%S"))
df$date=as.POSIXct(df$date, tryFormats=("[%d/%b/%Y:%H:%M:%S"))
head(df)
head(df)
</syntaxhighlight>
輸出成PNG圖片:
<syntaxhighlight lang="r">
reqs=as.data.frame(table(df$date))
reqs=as.data.frame(table(df$date))
p <- ggplot(data=reqs, aes(x=as.POSIXct(Var1), y=Freq)) + geom_line() + xlab('Date') + ylab('Requests')
p <- ggplot(data=reqs, aes(x=as.POSIXct(Var1), y=Freq)) + geom_line() + xlab('Date') + ylab('Requests')
行 15: 行 39:
dev.off()
dev.off()
</syntaxhighlight>
</syntaxhighlight>
== 外部連結 ==
* {{Official|https://www.r-project.org/}} {{en}}
* [https://sweetcode.io/r-apache-log-analysis/ R for Apache Log Analysis: Get It Structured] {{en}}
* [https://www.r-bloggers.com/log-file-analysis-with-r/ Log File Analysis with R] {{en}}
[[Category:軟體]]
[[Category:程式語言]]

於 2020年12月5日 (六) 09:15 的最新修訂

R是一套程式語言,主力在統計運算。

安裝

sudo apt install -y r-base

範例

先載入ggplot2:

library(ggplot2)

接著讀取資料,並且先依照欄位分類:

df <- read.table('blog.gslin.org_ssl-access.log.2.gz')
colnames(df) <- c('host', 'ident', 'authuser', 'date', 'timezone', 'request', 'status', 'bytes', 'referer', 'useragent', 'cipher')
head(df)

接下來把時間的部份轉成內部用的時間格式:

df$date=as.POSIXct(df$date, tryFormats=("[%d/%b/%Y:%H:%M:%S"))
head(df)

輸出成PNG圖片:

reqs=as.data.frame(table(df$date))
p <- ggplot(data=reqs, aes(x=as.POSIXct(Var1), y=Freq)) + geom_line() + xlab('Date') + ylab('Requests')
png('a.png', 720, 720)
print(p)
dev.off()

外部連結