根据R中的列值从数据框中删除行

时间:2020-07-01 16:31:19

标签: r dataframe

Sample_ID<-c("a1","a2","a3","a4","a5","a6")
Heart_attack<-c("1", "0", "1", "1", "0", "2")
DF<-data.frame(Sample_ID,Heart_attack)

我要从数据框中排除Heart_attack中所有具有“ 0”的样本。该怎么做?

3 个答案:

答案 0 :(得分:1)

如果您进行str(DF),将会看到Heart_attack是类型因素。因此,您需要降低0级别:

df2 <- droplevels(DF[-which(DF$Heart_attack == "0"), ])
df2
  Sample_ID Heart_attack
1        a1            1
3        a3            1
4        a4            1
6        a6            2

要检查0级别是否确实消失,可以使用table

table(df2$Heart_attack)
1 2 
3 1

答案 1 :(得分:0)

这是一个dplyr解决方案:

  DF <- DF %>% 
  filter(Heart_attack != 0) %>% 
  droplevels()

答案 2 :(得分:0)

来自subset的{​​{1}}的选项

base R