如何替换Vector中的值

时间:2014-05-16 03:30:16

标签: r

data1<-data.frame(x1=c("a","b"),x2=c("b","b"),x3=c("c","b"),x4=c("d","b"),stringsAsFactors=FALSE)
aaa<-as.character(data1[1,])
aaa

我想将\ M,b替换为\ N,其他人使用\ a在aaa向量中替换。怎么做?谢谢!

3 个答案:

答案 0 :(得分:1)

简单的回答是:

aaa[aaa!="a"&aaa!="b"]<-"\\O"
aaa[aaa=="a"]<-"\\M"
aaa[aaa=="b"]<-"\\N"

但是你的问题似乎是你试图定义无法识别的符号,例如\ M。

答案 1 :(得分:1)

使用查找向量自动执行此操作:

vec <- setNames(c("\\M","\\N"),c("a","b"))
ifelse(aaa %in% names(vec),vec[as.character(aaa)],"\\O")

#[1] "\\M" "\\N" "\\O" "\\O"

答案 2 :(得分:1)

另一种矫枉过正的方法:

library(qdapTools)
lookup(aaa, list(`\\M`="a", `\\N` ="b"), missing = "\\O")

## [1] "\\M" "\\N" "\\O" "\\O"