r中与引用某些对象相关的data.table错误

r中与引用某些对象相关的data.table错误,r,data.table,R,Data.table,我有下面的例子 a <- c("a","b","c","d","e","f") b <- 1:6 c <- c("a","E","D","C","B","A") d <- 10:15 dt1 <- data.table("ID" = b,"code_a" = a,"code_c" = c, "code_d" = d) dt2 <- data.table("ID" = b, "code_c" = c, "code_d" = d ) dt3 <- data

我有下面的例子

a <- c("a","b","c","d","e","f")
b <- 1:6
c <- c("a","E","D","C","B","A")
d <- 10:15

dt1 <- data.table("ID" = b,"code_a" = a,"code_c" = c, "code_d" = d)
dt2 <- data.table("ID" = b, "code_c" = c, "code_d" = d )
dt3 <- data.table("ID" = b, "code_d" = d)
merged_list <- list(dt1,dt2,dt3)
output <- merged_list[[1]][merged_list[[1]][,2] != merged_list[[1]][,3]]

因为只有第一行的
code\u a
等于
code\u c
,所以被删除。谢谢你的帮助。我在这里的主要目标是不要使用
$code\u a
,因为我不能将它放入一个for循环,它会给我
code\u a
code\u b
code\u c
等。非常感谢对我做错的事情以及如何解决这个问题的任何帮助。很抱歉,我的标题没有提供信息,我不太清楚这类问题是什么。

是的,因为错误消息表明比较返回一个矩阵

merged_list[[1]][,2] != merged_list[[1]][,3]
#     code_a
#[1,]  FALSE
#[2,]   TRUE
#[3,]   TRUE
#[4,]   TRUE
#[5,]   TRUE
#[6,]   TRUE

class(merged_list[[1]][,2] != merged_list[[1]][,3])
#[1] "matrix"
把它变成一个向量,它就会起作用

merged_list[[1]][c(merged_list[[1]][,2] != merged_list[[1]][,3])]

#   ID code_a code_c code_d
#1:  2      b      E     11
#2:  3      c      D     12
#3:  4      d      C     13
#4:  5      e      B     14
#5:  6      f      A     15

谢谢你的回答,这正是我想要的。我还有一个问题要问。如果我让
z@Kazusa12345您需要添加
with=FALSE
,请执行
merged_list[[z][,(4-z),with=FALSE]
merged_list[[1]][c(merged_list[[1]][,2] != merged_list[[1]][,3])]

#   ID code_a code_c code_d
#1:  2      b      E     11
#2:  3      c      D     12
#3:  4      d      C     13
#4:  5      e      B     14
#5:  6      f      A     15