data.table中的临时列名

时间:2017-06-07 05:03:11

标签: r data.table

我想在像mean这样的列表达式之后给自定义但是临时名称(即,我不想使用“:=”)将data.table更改为data.table的列。我已经看了一些使用eval函数的例子,但我想在一行代码中完成这个。我们怎么做?谢谢!

我有这个数据

steps.dt[,mean(steps), by = interval]
   interval V1
1:        0  0
2:        5  1
3:       10  2

现在,当我计算意味着只是为了了解数据而不是修改它

Series

我在名为“V1”的列下得到结果。我想给它一个自定义名称,如“steps.mean”,而不是在列表达式中使用“:=”更改数据表。

3 个答案:

答案 0 :(得分:3)

要在计算中命名列,您只需在J表达式

中设置名称
steps.dt[, .(steps.mean = mean(steps)), by = interval]

要仅显示平均列,您可以将表达式链接到末尾以仅显示感兴趣的列

steps.dt[, .(steps.mean = mean(steps)), by = interval][, .(steps.mean)]
## or, if you only want a vector of values returned, don't use the .()
# steps.dt[, .(steps.mean = mean(steps)), by = interval][, steps.mean]

答案 1 :(得分:-2)

这将通过使用dplyr

为您服务
library(dplyr)
steps.dt %>% 
    group_by(interval) %>% 
    summarise(steps.mean = mean(steps,na.rm = T) %>% 
    select (steps.mean)

答案 2 :(得分:-2)

我们可以使用base R

执行此操作
aggregate(steps~interval, steps.dt, mean)