R删除重复的字符串

时间:2019-06-10 03:12:04

标签: r string null

我想删除R中的重复字符串。 我简化了情况,尝试了两件事。

#1 remove a vector
x=c("a","a","b","c","d")
x[-(x=="a")] 

我希望它将删除所有“ a”,但结果是

[1] "a" "b" "c"

其次,我尝试了“ NULL”

x[x=="a"]=NULL

但是有一个错误:

Error in x[x == "a"] = NULL : replacement   has length zero

如何删除重复字符串?在这种情况下,请删除所有“ a”并打印

[1] "b" "c" "d"

1 个答案:

答案 0 :(得分:0)

如果要删除重复的'a',请使用table来获取元素的频率,并基于该子集使用%in%并否定({{1 })

!

或使用x[!x %in% names(which(table(x) > 1))] #[1] "b" "c" "d"

duplicated

或者,如果它基于重复的相邻元素,请使用x[!(duplicated(x)|duplicated(x, fromLast = TRUE))]

rle

注意:以上所有内容都是通过编程方式删除元素,而不是手动检查


从OP的评论中可以明显看出,他们只想删除已知重复的特定元素。在这种情况下,

with(rle(x), values[lengths ==1])
#[1] "b" "c" "d"

在这里,我们使用x[! x %in% c("a")] ,因为%in%仅可用于比较单个元素