作者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/cn.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