在R中查找具有多个逗号分隔实例的字符串中的所有对组合

时间:2013-05-08 13:06:31

标签: r

对于R来说,我真的很陌生,并试图为我解决一个具有挑战性的问题。

我有一个.csv文件包含22.388行,以逗号分隔的整数。 我想分别为每一行找到所有可能的整数对的组合,并列出它们对的配对,这样我就可以将它们视觉表示为簇。

我尝试为R安装combinat软件包,但似乎无法解决问题。

我文件中的一个例子是

2 13

2 8 6

这应该列在这样的对的可能组合中。

2,13
2,8 2,6 8,6

2 个答案:

答案 0 :(得分:0)

combn给出了向量元素的组合。 paste这些组合以及apply

x <- c(2, 13)
y <- c(2, 8, 6)
apply(combn(x, 2), 2, paste, collapse=' ')
[1] "2 13"

循环遍历这些:

unlist(sapply(list(x, y), function(x) apply(combn(x, 2), 2, paste, collapse=' ')))
## [1] "2 13" "2 8"  "2 6"  "8 6" 

答案 1 :(得分:0)

示例输入 - 将textConnection(...)替换为您的csv文件名。

csv <- textConnection("2,13
2,8,6")

这将输入读入值列表:

input.lines  <- readLines(csv)
input.values <- strsplit(input.lines, ',')

这会创建一个嵌套的对列表:

pairs <- lapply(input.values, combn, 2, simplify = FALSE)

这会将所有内容放在一个漂亮的整数矩阵中:

pairs.mat <- matrix(as.integer(unlist(pairs)), ncol = 2, byrow = TRUE)
pairs.mat
#      [,1] [,2]
# [1,]    2   13
# [2,]    2    8
# [3,]    2    6
# [4,]    8    6