我想根据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)
}
我也尝试使用双方括号[[]],但这也不起作用。我使用相同的逻辑列表工作正常,但在这种情况下,列名称是字符串,我不知道如何相应地更改代码。
答案 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