簡體   English   中英

根據 R 中的列值從 dataframe 中刪除行

[英]Delete rows from dataframe based on column value in R

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”的樣本。如何做到這一點?

如果你做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

這是一個dplyr解決方案:

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

帶有來自base R subset的選項

df2 <-  droplevels(subset(DF, as.logical(as.integer(Heart_attack))))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM