[英]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.