我试图在R中创建两个不同大小的矢量的所有元素的独特组合.
例如,第一个向量是
a <- c("ABC", "DEF", "GHI")
Run Code Online (Sandbox Code Playgroud)
第二个是当前存储为字符串的日期
b <- c("2012-05-01", "2012-05-02", "2012-05-03", "2012-05-04", "2012-05-05")
Run Code Online (Sandbox Code Playgroud)
我需要创建一个包含两列的数据框
> data
a b
1 ABC 2012-05-01
2 ABC 2012-05-02
3 ABC 2012-05-03
4 ABC 2012-05-04
5 ABC 2012-05-05
6 DEF 2012-05-01
7 DEF 2012-05-02
8 DEF 2012-05-03
9 DEF 2012-05-04
10 DEF 2012-05-05
11 GHI 2012-05-01
12 GHI 2012-05-02
13 GHI 2012-05-03
14 GHI 2012-05-04
15 GHI 2012-05-05
Run Code Online (Sandbox Code Playgroud)
所以基本上,我正在寻找一个独特的组合,考虑一个矢量的所有元素(a)与第二个矢量(b)的所有元素并置.
理想的解决方案将推广到更多输入向量.
另请参见:
如何生成组合矩阵
如何使用R将整数转换为二进制向量?
例如 :
number <- 11
[1] 1 0 1 1
Run Code Online (Sandbox Code Playgroud)
如果我需要将整个数字向量(最小值= 0,最大值= 300)转换为二进制矩阵,那么最快的转换方法(使用R代码或包中的一些现有函数)是什么?
我正在寻找一个函数,它返回一个向量的无序组合.例如
x<-c('red','blue','black')
uncomb(x)
[1]'red'
[2]'blue'
[3]'black'
[4]'red','blue'
[5]'blue','black'
[6]'red','black'
[7]'red','blue','black'
Run Code Online (Sandbox Code Playgroud)
我想在某个库中有一个函数可以执行此操作,但是找不到它.我正在尝试permutations,gtool但它不是我正在寻找的功能.
所以,我有这个向量 c("T", "A", "C", "G") 用于基因组数据。我想生成大小为 3 的所有可能组合,重复如下:
T T T
T T A
T T C
T T G
T A T
..
Run Code Online (Sandbox Code Playgroud)
那会给我 4^3=64 个组合。大小 4 的组合将给出 4^4,而大小 5 的组合应给出 4^5=1024 行。
我搜索了 SOF,并认为 expand.grid() 会这样做,但我不知道如何使用它来获得所需的输出。任何的想法?
因此,expand.grid返回传递的向量的所有组合的df.
df <- expand.grid(1:3, 1:3)
df <- expand.grid(1:3, 1:3, 1:3)
Run Code Online (Sandbox Code Playgroud)
我想要的是一个带有1个参数(向量数)并返回适当数据帧的通用函数.
combinations <- function(n) {
return(expand.grid(0, 1, ... n))
}
Run Code Online (Sandbox Code Playgroud)
这样
combinations(2) returns(expand.grid(1:3, 1:3))
combinations(3) returns(expand.grid(1:3, 1:3, 1:3))
combinations(4) returns(expand.grid(1:3, 1:3, 1:3, 1:3))
Run Code Online (Sandbox Code Playgroud)
等等
我有一个问题,我不确定该如何处理。我有一个矩阵中的项目列表,我想创建一个矩阵,以容纳其中两个项目的所有可能组合。
假设我有如下所示的matrix_1:
Matrix_1 <- as.matrix(a,b,c)
[,1]
A
B
C
Run Code Online (Sandbox Code Playgroud)
由此,我想制作一个如下所示的矩阵
[,1] [,2]
A A
A B
A C
B A
B B
B C
C A
C B
C C
Run Code Online (Sandbox Code Playgroud)
我怎么做?
我有一个包含 7 个变量的数据集,我想运行所有可能的组合。我真正想要的是运行选择不同变量的不同方程,例如:
Y = b_0 + b_1*X_1 + b_2*X_2
Y = b_0 + b_1*X_1 + b_2*X_3
Y = b_0 + b_1*X_1 + b_2*X_2 + b_3*X_3
Y = b_0 + b_1*X_1 + b_2*X_2 + b_3*X_3 + b_2*X_4
Y = b_0 + b_1*X_1 + b_2*X_2 + b_2*X_4
Y = b_0 + b_1*X_1 + b_2*X_4
Run Code Online (Sandbox Code Playgroud)
所有可能的组合都按此顺序。我应该如何设置我的循环功能?
我有一个列表,其中每个元素都是一组数字.所有组的长度都不同:
a <- list(1,c(2,3),c(4,5,6))
#> a
#[[1]]
#[1] 1
#[[2]]
#[1] 2 3
#[[3]]
#[1] 4 5 6
Run Code Online (Sandbox Code Playgroud)
我想得到每组中一个元素的所有可能组合.在这个例子中它应该是:
1 2 4,1 2 5,1 2 6,1 3 4,1 3 5,1 3 6
我觉得*apply-functions的某些组合在这里很有用,但是无法弄清楚如何做到这一点.
r ×8
combinations ×2
algorithm ×1
binary ×1
binary-data ×1
integer ×1
lapply ×1
loops ×1
numeric ×1
r-faq ×1
regression ×1
sapply ×1
statistics ×1