【发布时间】:2019-09-27 22:36:24
【问题描述】:
我需要在 R 中生成一些虚拟变量,并希望您对此提供意见。
在数据集中,每个参与者有 10 个观察值,每个参与者被分配到四种治疗方法之一(1、2、3、4)。选择是在 10 个任务(taskno)中选择“1”或“2”。以下是观察结果。
+----+--------+---------+--------+
| id | taskno | treatno | choice |
+----+--------+---------+--------+
| 1 | 1 | 1 | 1 |
| 1 | 2 | 1 | 2 |
| 1 | 3 | 1 | 2 |
| 1 | 4 | 1 | 2 |
| 1 | 5 | 1 | 1 |
| 1 | 6 | 1 | 1 |
| 1 | 7 | 1 | 1 |
| 1 | 8 | 1 | 1 |
| 1 | 9 | 1 | 1 |
| 1 | 10 | 1 | 1 |
| 2 | 1 | 1 | 1 |
| 2 | 2 | 1 | 1 |
| 2 | 3 | 1 | 2 |
| 2 | 4 | 1 | 2 |
| 2 | 5 | 1 | 1 |
| . | . | . | . |
| . | . | . | . |
+----+--------+---------+--------+
现在,我想生成一个虚拟变量,我们称之为 dummy_1,这样一旦参与者选择了选项 2 并且treatno 为 1,那么对于所有剩余的观察结果,dummy_1 应该等于 1 (taskno)对于同一参与者。
例如,在上面的示例中,参与者 1 在第二个任务中选择了选项 2。现在对于参与者 1 的其余观察结果(任务编号:3 到 10),dummy_1 应该等于 1(与参与者 1 在任务编号 3 到 10 中的选择无关)。这同样适用于参与者 2 等等。
“dummy_1”的输出应该是:
+----+--------+---------+--------+---------+
| id | taskno | treatno | choice | dummy_1 |
+----+--------+---------+--------+---------+
| 1 | 1 | 1 | 1 | 0 |
| 1 | 2 | 1 | 2 | 0 |
| 1 | 3 | 1 | 2 | 1 |
| 1 | 4 | 1 | 2 | 1 |
| 1 | 5 | 1 | 1 | 1 |
| 1 | 6 | 1 | 1 | 1 |
| 1 | 7 | 1 | 1 | 1 |
| 1 | 8 | 1 | 1 | 1 |
| 1 | 9 | 1 | 1 | 1 |
| 1 | 10 | 1 | 1 | 1 |
| 2 | 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 1 | 0 |
| 2 | 3 | 1 | 2 | 0 |
| 2 | 4 | 1 | 2 | 1 |
| 2 | 5 | 1 | 1 | 1 |
| . | . | . | . | . |
| . | . | . | . | . |
+----+--------+---------+--------+---------+
在这方面的任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: r loops dataframe dummy-variable panel-data