如何从R中的因子创建虚拟变量?

时间:2017-05-06 03:32:45

标签: r categorical-data

Yield   Fertilizer
31  1
34  1
34  1
34  1
43  1
35  1
38  1
36  1
36  1
45  1
27  2
27  2
25  2
34  2
21  2
36  2
34  2
30  2
32  2
33  2
36  3
37  3
37  3
34  3
37  3
28  3
33  3
29  3
36  3
42  3
33  4
27  4
35  4
25  4
29  4
20  4
25  4
40  4
35  4
29  4

我必须将肥料1分为虚拟变量F1,肥料2作为虚拟变量F2,肥料3作为虚拟变量F3和4作为基线。

我使用read.csv函数将此csv文件导入R中。 但在那之后我只是使用lm功能它并不像我想要的那样...... 我该怎么做?

2 个答案:

答案 0 :(得分:1)

尝试:

df$Fertilizer <- as.factor(df$Fertilizer)
df$Fertilizer <- relevel(df$Fertilizer, ref = "4")
fit <- lm(Yield ~ Fertilizer, data = df)
summary(fit)

答案 1 :(得分:0)

您可以使用model.matrix()功能来实现这一目标。

这应该让你开始:

new_df <- model.matrix(Yield ~ as.factor(Fertilizer)-1,your_df)