【发布时间】:2015-07-21 18:53:24
【问题描述】:
我有一个如下格式的数据框
1 2 a b c
1 a b 0 0 0
2 b 0 0 0
3 c 0 0 0
我想用 TRUE/FALSE 填充 a 到 c 列,说明列名是在第 1 列还是第 2 列中
1 2 a b c
1 a b 1 1 0
2 b 0 1 0
3 c 0 0 1
我有一个包含大约 530,000 条记录、4 个描述列和 95 个输出列的数据集,因此 for 循环不起作用。我尝试了以下格式的代码,但是太耗时了:
> for(i in 3:5) {
> for(j in 1:3) {
> for(k in 1:2){
> if(df[j,k]==colnames(df)[i]) df[j, i]=1
> }
> }
> }
有没有更简单、更有效的方法来实现相同的输出?
提前致谢!
【问题讨论】:
标签: r