r:lapply值赋值

时间:2017-10-03 12:52:47

标签: r variable-assignment lapply

我想用x替换下面向量中每个字符串的第二个字母。

ba <- c('ba','aba','baba')
# goal: bx, axa, bxba

通常我会使用substr(ba,2,2) <- 'x'。但由于原因太复杂而无法进入,我试图避免substr而是寻找另一种解决方案。所以我尝试将字符串拆分并替换每个列表的第二个元素。但我收到此错误消息。

ba2 <- strsplit(ba,'')
lapply(ba2,function(x) x[2]) <- 'x'
# Error in lapply(ba2, function(x) x[2]) <- "x" : 
# could not find function "lapply<-"

我该如何解决这个问题?有没有办法将lapply<-结合使用?

1 个答案:

答案 0 :(得分:4)

使用正则表达式替换:

sub("^(.).", "\\1x", ba)

说明:

  • ^ - 单词的开头
  • (。) - 采取任意角色,并记住它
  • 。另一个任意角色
  • \ 1 - 由记忆的角色替换
  • ......和&#39; x&#39;