识别并替换字符向量

时间:2016-02-10 18:44:49

标签: r

我有一个字符串向量a

a = c("Chemistry", "Chemistry", "Math","English","Math","Math","Physics","Physics","Chemistry")

有一种快速简单的方法可以如下制作吗?

c("Chemistry", NA, "Math","English","Math",NA,"Physics",NA,"Chemistry")

我尝试了diffduplicated,没有得到我想要的东西。

2 个答案:

答案 0 :(得分:5)

以下是使用rlereplace的方法:

replace(a, sequence(rle(a)$lengths) > 1, NA)
# [1] "Chemistry" NA          "Math"      "English"   "Math"      NA         
# [7] "Physics"   NA          "Chemistry"

答案 1 :(得分:3)

我们可以比较(js/document.querySelector ".myclass") 的相邻元素以获取逻辑向量,并将vector的元素分配给TRUE

NA

或者正如OP提到的a[c(FALSE,a[-1]==a[-length(a)])] <- NA a #[1] "Chemistry" NA "Math" "English" "Math" NA "Physics" NA "Chemistry" ,可以转换为diff,将其强制转换为factor,使用numeric然后分配给NA

diff

或使用a[c(FALSE,!diff(as.numeric(factor(a))))] <- NA

duplicated
相关问题