我有一个DataFrame “软件” ,我需要在其 列编号 上执行功能,而不使用列名称。例如
Software <- aggregate(Software$`Amount1`, by=list(Tower_Name=Software$`Tower`), FUN=sum)
在这里,列名“ Amount1” 有所不同,我需要在循环中使用其Number [7]。 我需要的是一种灵活的方式来处理列的名称,我想到这里的列号。
答案 0 :(得分:2)
一种选择是按列号对数据进行子集设置,然后使用formula
的{{1}}方法
aggregate
键是“软件”的列子集。在这里,我们已经知道“ Amount”的列索引为7,与“ Tower”列的匹配索引相连接,输出两列数据帧。在公式方法中,我们可以为所有其他列指定aggregate(.~ cbind(Tower_Name = Tower),
Software[c(7, match('Tower', names(Software)))], FUN = sum)
。在这里,它是“金额”或名称的变体
使用.
会更容易,因为有些tidyverse
可以使用列名或索引
summarise_at