R 当存在相关因素时,使用向量创建矩阵
我几乎到了互联网的尽头,但我找不到我问题的(确切)答案 这可能很容易,但我只想从数据帧中选择一些变量,用它的一些向量形成一个矩阵。下面的示例中主要介绍了发生的情况:R 当存在相关因素时,使用向量创建矩阵,r,matrix,statistics,R,Matrix,Statistics,我几乎到了互联网的尽头,但我找不到我问题的(确切)答案 这可能很容易,但我只想从数据帧中选择一些变量,用它的一些向量形成一个矩阵。下面的示例中主要介绍了发生的情况: treatment <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2), labels = c("placebo", "treated")) improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13,
treatment <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2),
labels = c("placebo", "treated"))
improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
levels = c(1, 2, 3),
labels = c("none", "some", "marked"))
numberofdrugs<-rpois(84, 2)
X<-cbind(numberofdrugs, treatment, improved)
X #"why are the units numbers and not names
治疗这是记录在案的cbind的行为。从?cbind
:“输入可能具有的任何类都将被丢弃(特别是,因子将被其内部代码替换)。”
您应该改用data.frame
:
X <- data.frame(numberofdrugs, treatment, improved)
head(X)
numberofdrugs treatment improved
1 0 placebo none
2 1 placebo none
3 0 placebo none
4 5 placebo none
5 1 placebo none
6 4 placebo none
X如果你到了互联网的尽头,你会意识到答案是42。@user734124,如果cbind
应用于向量,它会试图生成一个矩阵。矩阵列只能是同一类型。对于混合类型的列,您需要使用@Andrie建议的data.frame
。@mpiktas:不仅仅是矩阵元素需要是相同的类型,还需要进一步的约束,即它们没有属性。因子将其级别存储在属性中,当放入矩阵时,这些级别将被清除。