bab*_*ist 0 r subset multiple-columns dplyr
我想通过删除满足或不满足某个条件的列来对数据框进行子集化.例如,给出以下数据:
df <- data.frame(w = c('a', 'b', 'c'),
x = c(1, 0, 0),
y = c(0, 1, 0),
z = c(0, 0, 1))
Run Code Online (Sandbox Code Playgroud)
这使:
w x y z
a 1 0 0
b 0 1 0
c 0 0 1
Run Code Online (Sandbox Code Playgroud)
我想在对行进行子集化后删除包含0的列.例如:
df %>% filter(., w == 'a')
Run Code Online (Sandbox Code Playgroud)
生产:
w x y z
a 1 0 0
Run Code Online (Sandbox Code Playgroud)
然后我想减少到:
x
1
Run Code Online (Sandbox Code Playgroud)
我希望使用这个dplyr,因此下一步应该在filter命令之后进行管道传输.我尝试过summarise与apply一起使用,但是没有用.
你可以使用select_if():
df %>% filter(w == 'a') %>% select_if(function(col) is.numeric(col) && all(col != 0))
# x
#1 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |