R 数据表移位列

R 数据表移位列,r,data.table,R,Data.table,我经常收到一些字段被“不正确”的分隔符污染的数据,因此加载时结果如下: library(data.table) a <- data.table(x = c("AA", "AB", "A"), y = c(2, 4, "C"), z = c(NA, NA, 6)) 如果我已经有a,我需要做什么才能从a转换到b?我真的不需要太多的自动化来找到罪魁祸首,因为我可以很容易地查明那些案件。谢谢可能值得在摄入上下功夫(使用fread或其他任何东西)。@Frank,你是如何做到的?我认为发生的事情是,

我经常收到一些字段被“不正确”的分隔符污染的数据,因此加载时结果如下:

library(data.table)
a <- data.table(x = c("AA", "AB", "A"), y = c(2, 4, "C"), z = c(NA, NA, 6))

如果我已经有
a
,我需要做什么才能从
a
转换到
b
?我真的不需要太多的自动化来找到罪魁祸首,因为我可以很容易地查明那些案件。谢谢

可能值得在摄入上下功夫(使用
fread
或其他任何东西)。@Frank,你是如何做到的?我认为发生的事情是,当软件第一次生成x字段时,x字段在
x
中有“A,C”。但是我收到了从中读取的xlsx文件,所以当我收到它们时,它们已经被污染了。我唯一的机会是在Excel中修复它们?不,我的意思是,当您使用readXLS或任何R函数时,您可能会调整其选项,以便不在单元格中使用逗号分割。实际上,我希望默认情况下不会基于分隔符分割单元格。。。
 b <- data.table(x = c("AA", "AB", "AC"), y = c(2, 4, 6))
a[3, .SD[, 2] := .SD[, 3], .SDcols = c("y", "z")] 
# Error in `[.data.table`(a, 3, `:=`(.SD[, 2], .SD[, 3]), .SDcols = c("y",  : 
  LHS of := isn't column names ('character') or positions ('integer' or 'numeric')