【发布时间】:2019-07-18 03:55:35
【问题描述】:
我尝试计算通过组合列创建的对的出现次数,而对中元素的顺序并不重要。
例如: - 具有两列名称的数据表(V1,V2) - 将列组合成对 - 计算对(忽略每对内的顺序):A_B = B_A
set.seed(126)
dt <- data.table(V1 = sample(LETTERS[1:4], 30, replace = T),
V2 = sample(LETTERS[1:4], 30, replace = T))
#Exclude rows with the same name
dt <- dt[V1 != V2]
#Create pairs by combining V1 and V2
dt[, pair := paste(V1, V2, sep="_")]
#Count the pairs
dt[, .N, by=.(pair)]
结果:
# pair N
# 1: C_A 1
# 2: B_C 6
# 3: C_B 3
# 4: C_D 1
# 5: A_B 2
# 6: D_C 4
# 7: A_C 2
# 8: B_A 2
# 9: B_D 1
# 10: A_D 1
# 11: D_B 2
预期结果:
- 例如C_A 和 A_C 应该被视为同一对,等等。
# pair N
# 1: C_A 3 #A_C
# 2: B_C 9 #C_B
# 3: C_D 5 #D_C
# 4: A_B 4 #B_A
# 5: B_D 3 #D_B
# 6 : A_D 1
使用data.table执行此操作的任何建议
【问题讨论】:
标签: r data.table