我可以选择并排列一列:
iris %>%
select(Petal.Width, Species) %>%
arrange(desc(Petal.Width))
但我想对整个数据框执行此操作。我正在使用 forloop 来解决这个问题:
features <- colnames(iris)
top <- data.frame()
for (i in 1:length(features)) {
label <- features[[i]]
iris %>%
select(label, Species) %>%
arrange(desc(label)) %>%
top_n(3) %>%
rbind(top)
}
# Error in arrange_impl(.data, dots) :
# incorrect size (1) at position 1, expecting : 150
这给了我一个错误。
显然是arrange(desc(label))
行不通的。我四处搜索并尝试了类似UQ
和substitute
取消引用的方法label
,但没有结果。
和结尾rbind(top)
也top_n
可能不是我想要的,但我现在遇到的主要问题是如何使用label
forloop 将接受它。
也许有人知道比我的forloop更好的方法......
所需的输出是一个数据框,每列的前 3 个。