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