如何使用for循环更改列中的值

时间:2016-03-28 21:25:41

标签: r for-loop

我想根据if-else条件更改列的值,并使用FOR循环来执行此操作。数据如下所示:

m1 m2 m3 a1 a2
0.5 0.7 0.2 10 20
0.1 0 0.2 30 40

我想应用以下条件

ifelse(column > 0.5,1,0)

我尝试使用此代码,但它不起作用:

for (k in 1:3){
  data$m[k] <- ifelse(data$m[k] > 0.5,1,0)
  }

我也尝试使用双方括号[[]],但这也不起作用。我使用相同的逻辑列表工作正常,但在这种情况下,列名称是字符串,我不知道如何相应地更改代码。

1 个答案:

答案 0 :(得分:0)

参见下面的代码,我想你会期待这个......

m<-data.frame(
  m1=c(0.5,0.1),
  m2=c(0.7,0),
  m3=c(0.2,0.2),
  a1=c(10,30),
  a2=c(20,40)
)

for(i in 1:3){
  m[,i]<-ifelse(m[,i]>0.5,1,0)
}

结果是:

m1 m2 m3 a1 a2
0  1  0 10 20
0  0  0 30 40