【发布时间】:2019-10-28 13:46:13
【问题描述】:
考虑以下数据集:
a <- c(1,23,18,47,15,56,67,43,9)
b <- c("A","B","B","C","C","B","D","A","C")
df <- data.frame(var1=a, var2=b)
我需要在 df 的子部分(基于 var2 值)上运行函数(例如 mean()),如下所示:
df_A <- subset(df,var2=="A")
mean_A <- mean(df_A$var1)
df_B <- subset(df,var2=="B")
mean_B <- mean(df_B$var1)
df_C <- subset(df,var2=="C")
mean_C <- mean(df_C$var1)
df_D <- subset(df,var2=="D")
mean_D <- mean(df_D$var1)
我在这里面临的最大困难是我事先不知道我在 var2 中有多少不同的值。在我的示例中,我有 4 种可能性:“A”、“B”、“C”和“D”。但实际上,它是随机的……有时我有一个数据集,在 var2 中有 2 个不同的值,有时是 15,有时更多……
我认为循环可能是一个很好的解决方案,但我有点迷茫......
你能帮忙吗?提前致谢。
【问题讨论】:
-
tapply(df$var1, df$var2, FUN=mean)stackoverflow.com/questions/3505701/…