为什么mutate(row_number())对data.tables失败?

时间:2016-02-15 20:06:49

标签: r data.table dplyr

当我尝试在data.table上使用来自row_number()的{​​{1}}时,会抛出错误。这是一个例子:

dplyr

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

dplyr::row_number()函数具有一个强制性参数,该参数应该是您要为其做行号的列的名称。

在您的示例中,您应该这样写:

library(dplyr)
library(data.table)
mine <- data.table(a = 1:10) %>% 
    mutate(row_number(a))

因为a是您要为其添加row_number()的列的名称。没有这个,R就会抛出错误argument "x" is missing, with no default

但是,我建议使用tibble::rowid_to_column()函数。很干净。

library(dplyr)
library(data.table)
library(tibble)
mine <- data.table(a = 1:10) %>% 
    rowid_to_column()

我希望有帮助。