【发布时间】:2015-11-26 22:46:33
【问题描述】:
所以问题来了:我想在我的 R 代码中使用 for 循环来总结不同的列。
作为一个例子,它可能看起来像这样:
all.columns<-c("column4","column5","column6","column7")
for (i in 1:4) {
df%>%
group_by(column3)%>%
summarise(Mean=mean(all.columns[i]),
Max=max(all.columns[i]))
}
其中 df 是一个数据框,column3 可以是按 Year 变量分组,第 5 到 7 列是我想用相同的代码重复检查的那些。
您知道如何使用 dplyr 执行此操作吗?如果您有没有 dplyr 的替代方案,我很想听听。
我试过放列的字符名,但是不行……
【问题讨论】:
-
也许在末尾添加一个
%>% print。我不太清楚你想做什么。示例数据可能会有所帮助。 -
请添加一些与您心目中的结构相匹配的示例数据,理想情况下,是所需输出的说明。照原样,我无法判断您的分组变量是否跨行重复,是否必须处理缺失值等。
-
你想要的输出是什么?你想要对象,每一列的摘要都有一个数据框吗?使用字符串列名,您需要使用标准评估
summarise_()...有a whole vignette on the topic。或者也许查看summarize_each并为自己获取一个没有任何循环的大型摘要数据框。 -
感谢 Gregor,这正是最简单的方法! summarise_each(funs(mean, max), column4,column5,column6) stackoverflow.com/questions/21644848/…