Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么data.tables的mutate(row_number())失败?_R_Data.table_Dplyr - Fatal编程技术网

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

为什么data.tables的mutate(row_number())失败?,r,data.table,dplyr,R,Data.table,Dplyr,当我试图在data.table上使用dplyr中的row\u number()时,它会抛出一个错误。下面是一个例子: 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,

当我试图在data.table上使用
dplyr
中的
row\u number()
时,它会抛出一个错误。下面是一个例子:

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
库(dplyr)
库(数据表)
我的%mutate(行号())
#排名错误(x,ties.method=“first”,na.last=“keep”):
#缺少参数“x”,没有默认值

知道为什么会发生这种情况吗?

函数的
dplyr::row_number()
必须包含一个参数,该参数应该是要为其设置行号的列的名称

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

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

我希望这能有所帮助。

将其转换为
tbl\u df
并有效,即
mine%>%tbl\u df%>%mutate(rn=row\u number())
为什么不使用
data.table
方法来处理
data.table
?这可能是一个bug..看起来像一个。如果你使用
数据表
,为什么不在当前的devel版本(1.9.7)中使用
mine[,row\u number:=.I]
mine[,row\u编号:=1.N,by=group]
,我想dtplyr包应该能处理这个问题。如果没有,可能会引发问题
library(dplyr)
library(data.table)
library(tibble)
mine <- data.table(a = 1:10) %>% 
    rowid_to_column()