我正在寻找一个函数,它接受一个列表(数字,字符或任何类型的对象)并返回两个向量(或向量列表),它们代表所有可能的交互(我们可能应用函数{{1}在这些输出上)。
table(..)
有意义吗?
答案 0 :(得分:1)
使用combn
:
f <- function(L) {
i <- combn(length(L), 2)
list(unlist(L[i[1, ]]), unlist(L[i[2, ]]))
}
然后,
> f(list(1,2))
[[1]]
[1] 1
[[2]]
[1] 2
> f(list('a','b','c'))
[[1]]
[1] "a" "a" "b"
[[2]]
[1] "b" "c" "c"
> f(list('a','b','c','d'))
[[1]]
[1] "a" "a" "a" "b" "b" "c"
[[2]]
[1] "b" "c" "d" "c" "d" "d"