我想删除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"
?
答案 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%
仅可用于比较单个元素