我在R中有一个数据帧,我想将所有列(在ID之外)从负转换为零
id1 id2 var1 var2 var3 -1 -1 0 -33 5 -1 -2 9 -10 -1
我可以使用代码行转换所有列,如:
temp[temp < 0] <- 0
但我无法将其调整为仅一列的列.我试过了:
temp[temp < 0, -c(1,2)] <- 0
但是这个错误说明不存在不存在的行
编辑你的变种
temp[,-c(1,2)][temp[, -c(1,2)] < 0] <- 0
您可以尝试使用replace
:
> mydf[-c(1, 2)] <- replace(mydf[-c(1, 2)], mydf[-c(1, 2)] < 0, 0) > mydf id1 id2 var1 var2 var3 1 -1 -1 0 0 5 2 -1 -2 9 0 0