这个问题在这里已有答案:
R很新,我试图选择某些列,以便将NA设置为0 .
到目前为止我有:
col_names1 <- c('a','b','c')
col_names2 <- c('e','f','g')
col_names <- c(col_names1, col_names2)
data = fread('data.tsv', sep="\t", header= FALSE,na.strings="NA",
stringsAsFactors=TRUE,
colClasses=my_col_Classes
)
setnames(data, col_names)
data[col_names2][is.na(data[col_names2])] <- 0
但我一直在收到错误
[ . data.table
(* tmp *
,column_names2)中的错误:当i是data.table(或字符向量)时,x必须被键入(即排序,并标记为已排序),因此数据 . table知道要加入哪些列并利用x进行排序 . 首先调用setkey(x,...),参见?setkey .
我相信这个错误是说我的订单错了,但我不确定我该怎么办?
1 回答
你可以用data.table分配
:=
附:你无法从data.table中选择
data[col_names2]
之类的列 . 如果你想通过字符向量选择它们,一种方法是:data[, col_names2, with = F]