使用列号(不是列名)执行功能

时间:2019-01-17 14:09:59

标签: r

我有一个DataFrame “软件” ,我需要在其 列编号 上执行功能,而不使用列名称。例如

Software <- aggregate(Software$`Amount1`, by=list(Tower_Name=Software$`Tower`), FUN=sum)

在这里,列名“ Amount1” 有所不同,我需要在循环中使用其Number [7]。 我需要的是一种灵活的方式来处理列的名称,我想到这里的列号。

1 个答案:

答案 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