R 如何使用ddply+;自定义函数中的摘要
我试图在自定义函数中使用ddply summary函数(例如mean())。然而,它不是得出每个组的平均值,而是生成一个显示所有观察值平均值的数据框 非常感谢您的帮助R 如何使用ddply+;自定义函数中的摘要,r,dataframe,plyr,R,Dataframe,Plyr,我试图在自定义函数中使用ddply summary函数(例如mean())。然而,它不是得出每个组的平均值,而是生成一个显示所有观察值平均值的数据框 非常感谢您的帮助 library(plyr) library(dplyr) df <- data.frame(Titanic) colnames(df) # ddply-summarise - Outside of function df.OutsideOfFunction <- ddply(df, c("Class","Sex"),
library(plyr)
library(dplyr)
df <- data.frame(Titanic)
colnames(df)
# ddply-summarise - Outside of function
df.OutsideOfFunction <- ddply(df, c("Class","Sex"), summarise,
Mean=mean(Freq))
# new function
newFunction <- function(data, GroupVariables, ColA){
mean(data[[ColA]])
plyr::ddply(data, GroupVariables, summarise,
Mean=mean(data[[ColA]]))
}
#ddply-summarise - InsideOfFunction
df.InsideOfFunction <- newFunction(data=df,
GroupVariables=c("Class","Sex"),
ColA ="Freq")
库(plyr)
图书馆(dplyr)
df它应该以这种方式工作,首先将ColA输入转换为符号,然后对其求值:
# new function
newFunction <- function(data, GroupVariables, ColA){
#mean(data[[ColA]])
plyr::ddply(data, GroupVariables, summarise, Mean=mean(UQ(sym(ColA))))
}
希望这能帮助我执行代码时出错。它在你的环境中有效吗?对我来说有效。一位同事刚刚尝试,第一次收到一条错误消息-在关闭/重新打开RStudio后,它也对她有效。非常感谢您的快速回复!你的两个建议都有效。
newFunction <- function(data, GroupVariables, ColA){
data %>% group_by(.dots=GroupVariables) %>% summarise(Mean=mean(UQ(sym(ColA))))
}