簡體   English   中英

如果行包含某個值 (R,dplyr),則從 dataframe 中刪除行

[英]Remove rows from dataframe if they contain a certain value (R ,dplyr)

我有一個 dataframe,df。 我想從 dataframe 中刪除所有包含值 0 的行。

  ID     Value

  A      8
  A      8
  A      0
  B      1
  B      2
  C      0

期望的結果:

 ID     Value

 A      8
 A      8
 B      1
 B      2

這是輸出:

 structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L, 3L), .Label = c("A", 
 "B", "C"), class = "factor"), Value = c(8L, 8L, 0L, 1L, 2L, 0L
 )), class = "data.frame", row.names = c(NA, -6L))

這是我嘗試過的:

 I was using the same concept to remove a column:

 library(dplyr)
 df%>% select(-c() 

 However, I am unsure how to specify how to remove the row if and only if it contains a 0.

我們可以使用filter而不是select因為select用於選擇列,而filter則相反,即保留/刪除行

library(dplyr)
df %>% 
  filter(Value!=0)
  #or filter(as.logical(Value))

base R

subset(df, as.logical(Value))

使用as.logical也可以將值轉換為 TRUE/FALSE,即所有 0 都為 FALSE, as.logical任何其他值都為 TRUE

暫無
暫無

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

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