Jak*_*her 6 r dplyr data.table
当我尝试在 data.table 上使用row_number()
fromdplyr
时,它会引发错误。下面是一个例子:
library(dplyr)
library(data.table)
mine <- data.table(a = 1:10)
mine %>% mutate(row_number())
# Error in rank(x, ties.method = "first", na.last = "keep") :
# argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会发生这种情况?
该dplyr::row_number()
函数有一个强制参数,该参数应该是要为其执行行号的列的名称。
在你的例子中,你应该这样写:
library(dplyr)
library(data.table)
mine <- data.table(a = 1:10) %>%
mutate(row_number(a))
Run Code Online (Sandbox Code Playgroud)
因为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()
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。