【发布时间】:2016-11-15 20:26:52
【问题描述】:
我有一个数字数据矩阵,其中包含讨厌的零列,我想删除这些数据以进行一些数据处理。我使用is_zero_column <- colSums(matrix) == 0 跟踪哪些列是零列,并通过matrix <- matrix[,colSums(matrix)!=0] 删除零列
现在我将如何做相反的事情,我使用我的 TRUE/FALSE 的is_zero_column(如果为零列则为 TRUE)将零列重新插入到我的矩阵中?
如果这不是 R,我会使用 forloop 来构造一个新矩阵:(在 python-ish 伪代码中)
new_matrix;
for i in is_zero_column:
if i is TRUE:
new_matrix <- new_matrix.append_column(rep(0, columnlength))
else:
new_matrix <- new_matrix.append_column(matrix[,1])
matrix <- matrix[,-1]
return new_matrix;
但是,这是 R,所以试图找到一种非 for 循环的方式来做到这一点。
【问题讨论】: