[英]How do I apply a function to one column split by each factor in another column of a data frame using ddply?
[英]How do I apply a function in R to certain columns of a data frame grouped by another column?
我一直在寻找的帮助页面tapply
和by
,我不知道他们是这样做的正确的工具。 例如,如果我有一个数据框,其中的列为Name,Value1,Value2
并且我想应用一个函数,则将function f(x,y) { do_something }
应用于按Name
分组的Value1
和Value2
并得到一个数据框与列Name,f(Value1,Value2)
我应该怎么做?
我可以轻而易举地在这样的简单情况下工作:
tapply(df$Name, df$value1, mean)
但是如果我的函数也将df$value2
作为输入怎么办? 是不是这么简单mean
? 换句话说,我想要做的是伪符号:
tapply(df$Name, c(df$value1,df$value2), function f(x,y) { x+y+bla...})
尽管不会返回data.frame
但是by
可以完成工作。
by(df, df$Name, function(X) f(X$Value1, X$Value2))
包data.table
最好针对这种情况设置:
install.packages("data.table")
library(data.table)
dt = data.table(df)
dt[,f(Value1, Value2),by=Name]
将完全返回您要查找的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.