在矩阵usinf中“为”分配名称

时间:2018-10-09 13:47:07

标签: r matrix

我有n个因子,并将这些因子的n(n-1)/ 2个组合作为矩阵中的列。现在,我想分配列的名称,因为每个名称都向我展示了这两个因素的结合。这就是我写的但是错误是“双名的长度不等于数组内容”。您会提出什么建议?

for (i in 1:ncol(X_ok)) { 
for (j in i:ncol(X_ok)) {
if(i == j){
next
}
   colnames(out_or)<-paste0(colnames(X_ok)[i],colnames(X_ok)[j], sep='*')
  }
}

2 个答案:

答案 0 :(得分:0)

您可以很容易地生成X_ok的所有可能组合,而无需使用for循环:

X_ok <- LETTERS[1:5] # as an example

combinations <- combn(X_ok, 2)

然后,您可以按列将输出连接起来,以用*分隔新名称:

colnames(out_or) <- apply(combinations, 2, paste, collapse = "*")

答案 1 :(得分:0)

这是我使用tidyverse的crossing()的方法。

<input type="radio" ... [(ngModel)]="project.stoerungBlinkend" [value]="true" />    
<input type="radio" ... [(ngModel)]="project.stoerungBlinkend" [value]="false" />

如果您不习惯apply()语法,可能会更容易阅读。