我需要实现的基本上是 vector 值的所有组合的列表,但要运行给定长度的低谷窗口。显示起来比解释起来容易。
假设我有一个window.size
的3
vector <- c("goofy", "mickey", "donald", "foo", "bar")
这是我需要的输出
from | to
------+-----
goofy | mickey
goofy | donald
mickey| donald
mickey| foo
donald| bar
donald| foo
foo | bar
由于这将在蒙特卡洛迭代中结束,因此
windows.size
应该是参数化的我认为使用dplyr和tidyr可以很容易地做到这一点,但我不知道该怎么做。
提前致谢!
最佳答案
使用rollapply
和dplyr
。需要使用c
,do.call
和as.data.frame
丑陋来将combn
的输出转换为dplyr
函数的数据框:
library(zoo)
library(dplyr)
rollapply(vector, 3, combn, 2, simplify = FALSE) %>%
c() %>%
do.call(rbind, .) %>%
as.data.frame() %>%
distinct() %>%
setNames(c("from", "to"))
结果:
from to
1 goofy mickey
2 mickey donald
3 donald foo
4 goofy donald
5 mickey foo
6 donald bar
7 foo bar
关于r - 在R中生成矢量值的运行组合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52061341/