【发布时间】:2020-06-26 13:17:02
【问题描述】:
我正在尝试获取数据框中每一行的条目总数,以便以后压缩这些字段。
但是数据框有超过 60 行,写下面 60 次是非常低效的
df %>%
group_by(colname) %>%
count() %>%
arrange(desc(n))
有没有办法我可以编写一个 for 循环来遍历数据框中的所有名称并为每个名称生成管道函数结果?我试过了
for (i in colnames(df)) {
df %>%
group_by(colname) %>%
count() %>%
arrange(desc(n))
}
但我收到“我未知”错误。任何帮助将不胜感激。
【问题讨论】:
-
在你的算法中用 i 替换 colname。
-
你可以按照@grouah 的建议去做,但这不是一个非常整洁的解决方案。如果没有最小的、可重现的示例,我无法确定,但我相信您可能想要使用
summarize函数across要计算的列并使用n函数。如果您想要更好的答案,请提供最少的可重现示例和所需的输出 -
对此的 tidyverse 解决方案可能是使用 pivot_longer() 重塑数据,然后使用 group_by() 和 count() - 将有助于获得一个可重复的示例