我几乎到达了互联网的尽头,但是我找不到我的问题的(确切)答案!

这可能很容易,但是我只想从数据框中选择一些变量,以形成带有某些向量的矩阵。因此,主要是在下面的示例中打印了发生的情况:

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

我遇到的问题是R正在将因子转换为数字。例如,“男性”和“女性”分别为“0”和“1”。但是我不要那个!我应该做些什么?

最佳答案

这是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

关于r - 在涉及因素的情况下用向量创建矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5989463/

10-13 00:09