【发布时间】:2014-10-21 13:42:52
【问题描述】:
我有一个离散因子,长度为 79。
[1] 4 6 6 4 6 1 6 4 1 6 1 4 6 1 1 1 6 6 6 6 6 4 1 6 6 4 6 6 1 1 6 4 6 1 6 6 4 4
[39] 6 6 4 1 1 4 1 1 6 1 1 6 6 1 1 6 4 1 1 6 1 6 6 1 6 6 6 6 1 1 1 1 6 1 1 1 1 1
[77] 6 6 1
Levels: 1 4 6
我正在尝试将此离散因子绑定到一个大矩阵,其尺寸为:79 行 x 1921 列。有人告诉我,我的最终结果应该是添加了列的原始矩阵,但我不确定我应该如何解决这个问题。提前致谢。
这是我得到的用于将因子 cbind 到矩阵的代码:
dd1 = mat.x
for(v in levels(X)){
nv = rep(0, length(X))
nv[X==v] = 1
dd1 = cbind(dd1, nv)
}
我收到此警告消息:
警告信息:
1: 在 cbind(dd1, nv) 中:
结果的行数不是向量长度的倍数(arg 2)
2: 在 cbind(dd1, nv) 中:
结果的行数不是向量长度的倍数(arg 2)
3: 在 cbind(dd1, nv) 中:
结果的行数不是向量长度的倍数(arg 2)
【问题讨论】:
-
不能使用矩阵。也许是一个数据框?矩阵列必须全部相同
class -
您是否真的尝试过
cbind?我不明白为什么mat <- cbind(mat, vec)不起作用(其中mat是您的矩阵,vec是您的因子向量) -
可以,但已分解的向量将不再被分解
-
嗨,我编辑了我的原始帖子以包含我运行的警告消息和代码。
-
你确认
length(X)==nrow(mat.x)了吗?