我有一个有多行和多列的数据框
Data C1 C2 C3
R1 12 33 11
R2 11 2 0
R3 3 3 0
R4 2 3 1
依旧......
如何从C3值为非零的数据帧中删除所有行?
输出数据应该看起来像
Data C1 C2 C3
R2 11 2 0
R3 3 3 0
答案 0 :(得分:1)
予。使用R基础知识
df <- data.frame(Data=c("R1","R2","R3","R4"),C1=c(12,11,3,2),C2=c(33,2,3,3),C3=c(11,0,0,1))
df
# Data C1 C2 C3
# 1 R1 12 33 11
# 2 R2 11 2 0
# 3 R3 3 3 0
# 4 R4 2 3 1
df[df$C3 != 0,]
# Data C1 C2 C3
# 1 R1 12 33 11
# 4 R4 2 3 1
II。使用dplyr
包的管道操作符%>%
和filter()
函数
library(dplyr)
df %>%
filter(C3 != 0)
# Data C1 C2 C3
# 1 R1 12 33 11
# 2 R4 2 3 1
答案 1 :(得分:0)
x[x$C3==0,]
应该这样做:
> x
C1 C2 C3
R1 12 33 11
R2 11 2 0
R3 3 3 0
R4 2 3 1
> x[x$C3==0,]
C1 C2 C3
R2 11 2 0
R3 3 3 0
答案 2 :(得分:0)
使用filter
dplyr
df <-
df %>%
filter(C3 == 0)
Source: local data frame [2 x 4]
Data C1 C2 C3
<chr> <int> <int> <int>
1 R2 11 2 0
2 R3 3 3 0
重现您的输出数据,但是您要求
如何从C3值为非零的数据帧中删除所有行?
在这种情况下代码是
df <-
df %>%
filter(C3 != 0)
Source: local data frame [2 x 4]
Data C1 C2 C3
<chr> <int> <int> <int>
1 R1 12 33 11
2 R4 2 3 1