对于R来说,我真的很陌生,并试图为我解决一个具有挑战性的问题。
我有一个.csv文件包含22.388行,以逗号分隔的整数。 我想分别为每一行找到所有可能的整数对的组合,并列出它们对的配对,这样我就可以将它们视觉表示为簇。
我尝试为R安装combinat
软件包,但似乎无法解决问题。
我文件中的一个例子是
2 13
2 8 6
这应该列在这样的对的可能组合中。
2,13
2,8
2,6
8,6
答案 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