R:按数据表

时间:2017-09-28 06:06:20

标签: r data.table

我试图理解为什么我不能通过我在同一行创建的新变量进行排序。

目前我需要写两行,一行用于创建新变量,然后用于排序。

可以在 data.table

的同一行中完成
DF <- data.table(ID = c(1,2,1,2,1,1,1,1,2), Value = c(1,1,1,1,1,1,1,1,1))
newDF <- DF[order(-Count), .(Count = .N), by = ID] 

# Gives error: Error in eval(v, x, parent.frame()) : object 'Count' not found


# Works Correctly
newDF <- DF[, .(Count = .N), by = ID]
newDF <- newDF[order(-Count)]

> newDF
    ID Count
1:  1     6
2:  2     3

1 个答案:

答案 0 :(得分:4)

您可以简单地将两个操作链接在一行中,

DF[, .(Count = .N), by = ID][order(-Count)]