簡體   English   中英

使用 R 刪除所有列中具有相同值的行

[英]Remove Rows With Same Value Across All Columns Using R

我有以下數據集,如果行都是空的或在所有列中具有相同的值,我需要刪除這些行:

df <- data.frame(players=c('', 'Uncredited', 'C', 'D', 'E'),
                 assists=c("", "Uncredited", 4, 4, 3),
                 ratings=c("", "Uncredited", 4, 7, ""))


df

players      assists      ratings
<chr>         <chr>        <chr>
        
Uncredited  Uncredited  Uncredited
  C             4            4
  D             4            7
  E             3                                                                    ​               ​        ​

在我們的示例中,第一行全部為空,第二行具有相同的值Uncredited 因此,前兩行將被刪除。

期望的輸出

players assists ratings
 <chr>  <dbl>   <chr>
  C       4       4
  D       4       7
  E       3 

任何建議,將不勝感激。 謝謝!

您可以使用 apply 遍歷所有行並過濾具有多個不同值的行。 請注意,如果一行中的所有值都為空,則該行也只有一個不同的值,因此第一個條件是第二個條件的一部分。

df[apply(df,
         MARGIN = 1, # rowwise
         FUN = function(x) length(unique(x)) > 1), ]
#>   players assists ratings
#> 3       C       4       4
#> 4       D       4       7
#> 5       E       3

我們可以使用if_any

library(dplyr)
df %>% 
  filter(if_any(assists:ratings, ~ .x != players))

-輸出

  players assists ratings
1       C       4       4
2       D       4       7
3       E       3      

暫無
暫無

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

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