Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用ddply+;自定义函数中的摘要_R_Dataframe_Plyr - Fatal编程技术网

R 如何使用ddply+;自定义函数中的摘要

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"),

我试图在自定义函数中使用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"), 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))))
}