我有这个数据集:
dataset_ex <- data.frame(album = c("Brim","Brim","Brum","Brum"),
track = c("Tad","Toe","Toe","Ram"),
stringsAsFactors = FALSE)
album track
1 Brim Tad
2 Brim Toe
3 Brum Toe
4 Brum Ram一首歌是多余的(因为它出现在两张专辑中)。在这种情况下,歌曲Toe。我想消除对这首歌的一个观察,所以我试着:
dataset_ex %>% filter(track != "Toe" && album != "Brum")但它会返回所有的观察结果。我的预期结果是:
album track
1 Brim Tad
2 Brim Toe
3 Brum Ram任何帮助都将不胜感激。
发布于 2021-06-05 02:56:32
当比较向量时,您应该使用单个&或|,我认为您要寻找的条件是|这里-
library(dplyr)
dataset_ex %>% filter(track != "Toe" | album != "Brum")
# album track
#1 Brim Tad
#2 Brim Toe
#3 Brum Ram保留track不是'Toe'或album不是'Brum'的行。
另一种方式-
这将给出要删除的行。
dataset_ex %>% filter(track == "Toe" & album == "Brum")
# album track
#1 Brum Toe现在否定上面的条件,以得到您想要保留的行-
dataset_ex %>% filter(!(track == "Toe" & album == "Brum"))
# album track
#1 Brim Tad
#2 Brim Toe
#3 Brum Ram发布于 2021-06-05 01:18:19
您可以在distinct()上使用track,将所有其他列都保存在dataframe中。
dataset_ex <- distinct(dataset_ex, track, .keep_all = TRUE)
dataset_ex
# album track
# 1 Brim Tad
# 2 Brim Toe
# 3 Brum Ram发布于 2021-06-05 01:23:40
我想这可能对你有用
library(dplyr)
dataset_ex %>% distinct(track, .keep_all= TRUE)https://stackoverflow.com/questions/67845441
复制相似问题