作者celestialgod (天)
看板R_Language
標題Re: [問題] 表格問題
時間Sat Dec 5 23:36:10 2015
※ 引述《qaz5746986 (雲之痕)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 請教各位前輩,如想把r內建的iris資料集,計算出specis三個花種類別之下
: 其餘4個連續型變數的mean var 並做成一大張表格,該怎用迴圈寫出來較簡潔呢?
: 我只會用tapply一個一個算再bind起來...請各位前輩教導
最簡單的寫法,其他還有by, aggregate之類的
funs = list(mean, sd, var, min, median, max)
MM = matrix(NA, 3, (ncol(iris)-1)*length(funs))
for (i in seq_along(funs))
for (j in 1:(ncol(iris)-1))
MM[,(i-1)*(ncol(iris)-1)+j] = tapply(iris[,j], iris[,5], funs[[i]])
最好的方式:
library(dplyr)
iris %>% group_by(Species) %>%
summarise_each(funs(mean, sd, var, min, median, max))
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.236
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1449329773.A.E4F.html
1F:推 psinqoo: 推 dplyr 12/06 10:29
2F:推 qaz5746986: 感謝解惑 又學到一個好用套件了! 12/06 13:21
3F:→ qaz5746986: 請教版主,照上面跑只顯示mean 要怎一次顯示兩變數? 12/06 23:59
不懂你的問題? 你是說顯示問題嗎?
下面會跑出Variables not shown: Petal.Length_sd (dbl), ...這樣嗎
如果是上述問題就改print就好:
res = iris %>% group_by(Species) %>%
summarise_each(funs(mean, sd, var, min, median, max))
print(res, n = 3, width = 500)
n是列數,width是你要display的寬度(不是行數)
※ 編輯: celestialgod (140.109.74.87), 12/07/2015 10:05:02
4F:推 qaz5746986: 謝謝 問題解決了~ 12/07 14:04