r - 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.table("ID" = b, "code_d" = d)
merged_list <- list(dt1,dt2,dt3)
output <- merged_list[[1]][merged_list[[1]][,2] != merged_list[[1]][,3]]

错误测试如下:

Error in [.data.table(merged_list[[1]], merged_list[[1]][, 2] != merged_list[[1]][, : i is invalid type (matrix). Perhaps in future a 2 column matrix could return a list of elements of DT (in the spirit of A[B] in FAQ 2.14). Please report to data.table issue tracker if you'd like this, or add your comments to FR #657.

这里我想获取merged_list中第一项的输出,它是一个data.table,但给定的条件是data中的第二项.table 不得等于 data.table

中的第三项

我不确定为什么上面的方法不起作用,但如果我使用 $code_a$code_c 而不是 [,2]并且 [,3] 它有效。我不想使用 $ 引用,因为它在循环中不能很好地工作。

预期输出:

output
#     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

由于只有第一行的 code_a 等于 code_c,因此被删除。谢谢您的帮助。我这里的主要目标是不使用 $code_a 因为我不能将它放入 for 循环中,这会给我 code_a, code_b, code_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

关于r - r 中与引用某些对象相关的 data.table 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59189529/

相关文章:

r - 动态构建查找多列的调用

r - 使用 ggplot2 自动绘制所有 data.table 列的最佳方法

更快地将多个csv文件读入data.table R

r - 替代 (m)get in data.table 函数

r - 将句子的第一个单词大写(regex、gsub、gregexpr)

使用部分未知的文件名将文件读入 R

r - R 中 NA 的 data.frame 行的 cumsum

r - 在 Shiny 中使用 varSelectInput 过滤数据?

r - 为什么 apply 将数据帧中的逻辑转换为 5 个字符的字符串?

r - 按组使用 cov.wt 和 data.table 的加权相关性