我有一个例子数据如下:
df <- data.frame(Q1_A = c("This is a reason", NA, "This is a reason", NA),
Q1_B = c("This is another reason", "This is another reason", NA, NA))
每个答案都有多个可能的答案。因此,必须将它们分开。因此,NA
s也不是真正的NA
s
我想运行一个回归的形式:
lm( y ~ Q1_A + Q1_B + ... + )
然后显示为输出:
Coefficients:
(Intercept) Q1_A Q1_B
34.66099 -0.02058 -1.58728
我想这意味着我需要把所有的NA值转换为基本水平。
将这些变量转换为虚拟变量的最佳方法是什么?
预期输出:
df <- data.frame(Q1_A = c("This is a reason", "Baselevel", "This is a reason", "Baselevel"),
Q1_B = c("This is another reason", "This is another reason", "Baselevel", "Baselevel"))
2条答案
按热度按时间nfzehxib1#
当处理这样的数据时,我们通常将reason列转换为
0
和1
dummies,而列名指示原因。当原因相当长时,我们使用lookup data.frame在需要时查找列名。数据来自OP
创建于2023-03-21带有reprex v2.0.2
dsekswqp2#
使用
tidyr::replace_na
:对于
Q1_A
,您将得到