我有这个数据框。
mydf<- data.frame(c("a","a","b","b","c","c"),c("e","e","e","e","e","e")
,c(1,2,3,10,20,30),
c(5,10,20,20,15,10))
colnames(mydf)<-c("Model", "Class","Length", "Speed")
我正在努力更好地了解ddply的工作原理。
我想得到每个模型和类配对的平均长度和速度。
我知道这是一种方法:ddply(mydf, .(Model, Class), .fun = summarize, mSpeed = mean(Speed), mLength = mean(Length))
。
我想知道我是否可以使用ddply获得平均值,而不是一次指定一个。
我试过ddply(mydf, .(Model, Class), .fun = mean)
但是我得到了错误
警告消息:1:在mean.default(piece,...)中:参数不是数字或逻辑:返回NA
什么ddply
传递给函数参数?有没有办法将一个函数应用于每个列ddply
?
我的目标是了解更多ddply
。我只会接受答案ddply
发布于 2019-04-17 10:02:15
这是使用dplyr
和summarize
功能的解决方案。
library(dplyr)
mydf<- data.frame(c("a","a","b","b","c","c"),c("e","e","e","e","e","e")
,c(1,2,3,10,20,30),
c(5,10,20,20,15,10))
colnames(mydf)<-c("Model", "Class","Length", "Speed")
#summarize data by Model & Class
mydf %>% group_by(Model, Class) %>% summarize_if(is.numeric, mean)
#> # A tibble: 3 x 4
#> # Groups: Model [3]
#> Model Class Length Speed
#> <fct> <fct> <dbl> <dbl>
#> 1 a e 1.5 7.5
#> 2 b e 6.5 20
#> 3 c e 25 12.5
由reprex包创建于2019-04-16 (v0.2.1)
https://stackoverflow.com/questions/-100006625
复制相似问题