r - 在矩阵usinf“for”中分配列名
问题描述
我有 n 个因子,并将这些因子的 n(n-1)/2 个组合作为矩阵中的列。现在,我想分配列的名称,因为每个名称都向我展示了哪两个因素结合在一起。这是我写的。但错误是“dinames 的长度不等于数组内容”。你有什么建议?
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='*')
}
}
解决方案
您可以很容易地生成所有可能的组合,X_ok
而无需使用for
循环:
X_ok <- LETTERS[1:5] # as an example
combinations <- combn(X_ok, 2)
然后,您可以按列连接输出以获取由分隔的新名称*
:
colnames(out_or) <- apply(combinations, 2, paste, collapse = "*")
推荐阅读
- c# - Task.Delay 与 DateTime.Now 的结合有多准确?
- javascript - 通过根据用户选择附加 url 进行深度链接
- reactjs - React-Redux 产生 TypeError 无法读取未定义的属性
- app-inventor - AppInventor - 一行列表中的三个值
- pandas - 将小时数添加到格式化为字符串的时间戳
- php - PHP 警告: implode(): 传递的参数无效错误
- typescript - Firebase Firestore,当必须以编程方式解决子字段名称时,如何更新嵌套在子字段中的数组?
- php - 关联账户的条纹退款
- asp.net-core - 从 .net 核心中的像素值保存文件
- pyspark - Delta Lake 合并不更新模式(启用自动模式演变)