我在R中执行例程,我需要按组对变量求和。我看到了此post并使用了aggregate
。当hardcode
列名称Category
和Frequency
时,它可以正常工作。
Category Frequency
First 10
First 15
First 5
Second 2
Third 14
Third 20
Second 3
但是,我的情况是,必须在运行时为这些列名分配dynamically
。这些列是在运行时基于某些操作创建的。所以,如果我尝试使用像这样的变量访问列名 -
x_axis_column <- input$x_axis
并尝试使用聚合函数,我得到一个错误,如下所示 -
Error in FUN: invalid 'type' (character) of argument
这是我试过的代码 -
counted <- aggregate(item~x_axis_column, data, sum)
我在这里做错了什么?
答案 0 :(得分:1)
由于列名存储在变量中,我们无法直接使用它们。一种方法是使用变量对数据帧进行子集化。
aggregate(df[item], df[x_axis_column], sum)
# Category Frequency
#1 First 30
#2 Second 5
#3 Third 34
或另一种选择是使用公式和get
aggregate(get(item)~get(x_axis_column), df, sum)
答案 1 :(得分:0)
我们可以使用>1
tidyverse