我有一个数据框,如:
g1 g2 g3 g4 g5
2 0 1 0 1
2 1 1 0 1
2 1 1 2 1
Run Code Online (Sandbox Code Playgroud)
我想删除每个列中至少有一个2的列.
并得到一个新的df:
g2 g3 g5
0 1 1
1 1 1
1 1 1
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我们可以colSums在这里使用:
df <- data.frame(g1=c(2,2,2), g2=c(0,1,1), g3=c(1,1,1), g4=c(0,0,2), g5=c(1,1,1))
df[, !colSums(df==2)]
g2 g3 g5
1 0 1 1
2 1 1 1
3 1 1 1
Run Code Online (Sandbox Code Playgroud)
想法是包括原始数据帧中的所有行,但仅包括那些从不具有值2的列.在这种情况下,调用colSums()将为零,这在逻辑上等效false于R中.