这里是我的数据的例子:如何更改列中的值,同时检查列中的值?
essay ns0_nns1 A_pred B_pred A_pred01 B_pred01
1 1 1 0.558 0.370 NA NA
2 2 0 0.293 0.654 NA NA
3 3 0 0.545 0.849 NA NA
4 4 0 0.432 0.698 NA NA
5 5 1 0.651 0.404 NA NA
6 6 0 0.657 0.502 NA NA
7 7 1 0.884 0.658 NA NA
8 8 1 0.736 0.348 NA NA
9 9 0 0.532 0.791 NA NA
10 10 0 0.180 0.789 NA NA
我需要去通过,如果A_pred是< = 0.5,则在A_pred01相应的行应该分配0,否则应分配1
我以为我可以用一个循环做到这一点,所以我就来了:
for(i in dat$A_pred){
if(i<=0.5){
dat$A_pred01[i]=0
} else {
dat$A_pred01[i]=1}
}
这并没有工作,虽然。我想我需要知道的是,我可以以某种方式为A_pred01占用一个与i对应的占位符,并且它会在for循环中更改每个A_pred01值?我希望我所问的是有道理的,谢谢。
这工作,谢谢!但是,你能帮我理解“1:nrow(dat)”是怎么回事吗?再次感谢。 –
'nrow(dat)'是'dat'中的总行数。试试吧'1:nrow(dat)'会产生类似'1 2 3 4 5 6 ..'的东西。我们也可以做'1:length(A_pred)'或'1:length(essay)'。这是因为数据帧的所有列具有相同的长度。如果您不熟悉运算符':',那么'seq()'是一个辅助函数 –