找到与R的所有对组合

时间:2014-11-14 21:49:22

标签: r

我需要一些帮助来查找数据框中的所有配对值。我知道聚合和计数函数,但我有点挂了,因为我在列中有可变数量的属性..

示例数据:

           dfs.V2
1          51,26,48
2                51
3                32
4                26
5             92,26
6                94
7                94
8                24
9                26
10            48,51
11               32
12               32
13           25,126
14               32
15            25,24
16               32
17            92,48
18               32
19           118,48
20               32
21               32
22               32
23            51,94
24               26
25               48
26               32
27               48
28               32
29            51,48
30               32
31        50,118,92
32               32
33   24,48,26,51,92
34               32
35               32
36               26
37      25,24,48,50
38               32
39               26
40               32
41  114,24,25,51,92
42  50,51,24,48,118


The example output 
51,26: [count]
51,48: [count]
26,48: [count]

enter code here

等等。

订购事项,例如一对51,26和26,51应该算作同一对组合中的两个,而不是单独一个计数。

不,这不是家庭作业,只是一个侧面项目,我正在使用与我的工作相关的现实世界数据来在我的业余时间自学R。

1 个答案:

答案 0 :(得分:0)

我假设您希望根据同一行中的数字来确定对。例如51,26,48对每对{26,51} {26,48}和{48,51}获得一个计数

v2 <- c('51,26,48', '51', '32', '26', '92,26', '94', '94', '24', '26', '48,51', '32', '32', '25,126', '32', '25,24', '32', '92,48', '32', '118,48', '32', '32', '32', '51,94', '26', '48', '32', '48', '32', '51,48', '32', '50,118,92', '32', '24,48,26,51,92', '32', '32', '26', '25,24,48,50', '32', '26', '32', '114,24,25,51,92', '50,51,24,48,118')

v2 <- strsplit(v2, split = ',')

comb <- lapply(v2, function(x) if (length(x) > 1) combn(sort(as.numeric(x)), 2))
comb <- do.call(cbind, comb)

result <- as.data.frame(table(paste(comb[1,], comb[2,], sep = ',')))
head(result)
#     Var1 Freq
# 1 24,114    1
# 2 24,118    1
# 3  24,25    3
# 4  24,26    1
# 5  24,48    3
# 6  24,50    2