【发布时间】:2020-12-07 22:28:52
【问题描述】:
我有一个类似于以下但有数百列和数百万行的数据表:
Name A_1 A_2 A_3 B_1 C_1 B_2 D_1 D_2 B_3 C_2 C_3
one 1 1 1 3 5 2 1 1 2 5 5
two 40 40 40 2 6 2 4 4 2 6 6
three 20 20 20 5 7 5 6 6 5 8 9
four 30 30 31 1 6 1 2 2 1 6 6
我想对包含相同前缀的所有变量进行逐行比较,但我不完全确定最好的方法。到目前为止,我使用以下编码提取了列名中具有相同前缀的列索引向量,如下所示:
combo1<-grep(pattern="^A", x=colnames(data))
combo2<-grep(pattern="^B", x=colnames(data))
combo3<-grep(pattern="^C", x=colnames(data))
combo4<-grep(pattern="^D", x=colnames(data))
我相信下一步是遍历每个向量中数据表的列并比较行值以查看它们是否相等,但我不确定最好的方法。
我希望最终结果为具有匹配前缀的列的每个向量添加列,以传达组合是否相等,如下所示:
Name A_1 A_2 A_3 B_1 C_1 B_2 D_1 D_2 B_3 C_2 C_3 A_equal B_equal C_equal D_equal
one 1 1 1 3 5 2 1 1 2 5 5 TRUE FALSE TRUE TRUE
two 40 40 40 2 6 2 4 4 2 6 6 TRUE TRUE TRUE TRUE
three 20 20 20 5 7 5 6 6 5 8 9 TRUE TRUE FALSE TRUE
four 30 30 31 1 6 1 2 2 1 6 6 FALSE TRUE TRUE TRUE
最好的方法是什么?
【问题讨论】:
-
@A5C1D2H2I1M1N2O1R2T1 是的
标签: r data.table