我正在处理一个名为“ df”的数据框。 “ df”中的两列是“国家”和“异议”。我需要计算每个国家/地区的异议平均数。遍历数据框并按国家/地区计算平均值的最有效方法是什么?
我尝试过循环,但是它不起作用,而且我也不认为这是最有效的方法。
答案 0 :(得分:2)
tidyverse
提供了最简单的IMO
df %>% group_by(country) %>% summarize(avg = mean(dissent, na.rm = TRUE))
如问题所示(如果不建议这样做),如果您真的打算“迭代”:
avg <- NULL
for (i in 1:length(unique(df$country))) {
avg[i] <- mean(df[df$country == unique(df$country)[i], "dissent"], na.rm=TRUE)
}