删除R中的行

时间:2016-06-22 15:55:29

标签: r dataframe

我有一个有多行和多列的数据框

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

3 个答案:

答案 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