[英]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.