【发布时间】:2019-02-26 16:16:40
【问题描述】:
我已使用 mlogit.data 函数将我的数据转换为宽格式,以便能够在 R 中执行 mlogit 多项式 logit 回归。数据具有三种不同的“选择”,看起来像这样(宽格式):
Observation Choice Variable A Variable B Variable C
1 1 1.27 0.2 0.81
1 0 1.27 0.2 0.81
1 -1 1.27 0.2 0.81
2 1 0.20 0.45 0.70
2 0 0.20 0.45 0.70
2 -1 0.20 0.45 0.70
但是,由于变量 A、B 和 C 与不同的结果相关联,我现在想创建一个如下所示的新变量:
Observation Choice Variable A Variable B Variable C Variable D
1 1 1.27 0.2 0.81 1.27
1 0 1.27 0.2 0.81 0.2
1 -1 1.27 0.2 0.81 0.81
2 1 0.20 0.45 0.70 0.20
2 0 0.20 0.45 0.70 0.45
2 -1 0.20 0.45 0.70 0.70
我已经尝试了以下代码:
Variable D <- ifelse(Choice == "1", Variable A, ifelse(Choice == "-1", Variable B, Variable C))
然而,ifelse 函数只考虑每个观察中的一个选择,创建这样的:
Observation Choice Variable A Variable B Variable C Variable D
1 1 1.27 0.2 0.81 1.27
1 0 1.27 0.2 0.81 -
1 -1 1.27 0.2 0.81 -
2 1 0.20 0.45 0.70 -
2 0 0.20 0.45 0.70 0.2
2 -1 0.20 0.45 0.70 -
有人知道如何解决这个问题吗?
谢谢!
【问题讨论】: