R 从连接的值创建新的矩阵列
我有一个包含0和1的列的矩阵,我希望将每行中的值串联起来,以便在该矩阵中使用该串联字符串创建一个新列 我曾经R 从连接的值创建新的矩阵列,r,R,我有一个包含0和1的列的矩阵,我希望将每行中的值串联起来,以便在该矩阵中使用该串联字符串创建一个新列 我曾经 apply(format(matrix), 1, paste, collapse="") 从 创建一个串联值列表,但我在将这些值放入矩阵中的新列时遇到了问题-此代码的第二行语法错误 我当前的代码: newcolumn <- rep(0,times=nrow(matrix)) newcolumn[matrix[apply(format(matrix), 1, paste, col
apply(format(matrix), 1, paste, collapse="")
从
创建一个串联值列表,但我在将这些值放入矩阵中的新列时遇到了问题-此代码的第二行语法错误
我当前的代码:
newcolumn <- rep(0,times=nrow(matrix))
newcolumn[matrix[apply(format(matrix), 1, paste, collapse="")]]
matrix <- cbind(matrix, newcolumn)
newcolumn
您需要阅读R的基本介绍(请参阅)李>
目前,您已经创建了一个0
的向量作为newcolumn
。您的第二行代码是垃圾(正如您正确指出的)——请参见第1点
您可以将apply(format(matrix),1,paste,collapse=“”)的结果绑定到matrix
。无需预先分配newcolumn
请注意,矩阵
只能保存单一类型的数据(即数字或字符等),因此,如果包含字符
列,则整个矩阵将强制为字符
# examples
# a character matrix containing the result + matrix coerced to character
charResults <- cbind(matrix, apply(format(matrix), 1, paste, collapse="") )
# you could use a data.frame to have different data classes in the same structure
dfResults <- cbind(as.data.frame(matrix), result = apply(format(matrix), 1, paste, collapse=""))
#示例
#包含强制为字符的结果+矩阵的字符矩阵
charResultscbind(矩阵,paste0(as.character(矩阵[,1]),as.character(矩阵[,2]))
应该可以做到这一点。矩阵必须转换为字符格式以适应“01”大小写。假设您有一个如下所示的矩阵a
A=[[1,2,3,4,5,6],
[11,12,13,14,15,16],
[21,22,23,24,25,26],
[31,32,33,34,35,36],
[41,42,43,44,45,46]
您希望将1、2、3列与最后一列6.5列连接起来,以构建一个新矩阵,如下所示:;
NewA=
[[1,2,3,6],
[11,12,13,16],
[21,22,23,26],
[31,32,33,36],
[41,42,43,46]
我已经找到了实现这一目标的最简单的方法
将numpy作为np导入
NewA=np.concatenate((np.transpose(A)[0:3],np.transpose(A)[5:6])).transpose()
我希望它能对你有所帮助……非常感谢-我非常需要更多关于R的基本介绍,诚然,但不幸的是,我在做这个项目时比我希望的要匆忙得多。您的charResults代码正是我所需要的-非常感谢。提问者的问题与r
有关,但您提供的解决方案是针对python
语言的。