【发布时间】:2012-07-29 01:08:12
【问题描述】:
我正在寻找一个函数,它将用另一个值替换所有出现的一个值。 例如,我想用一替换所有零。 我不想将结果存储在变量中,但希望能够匿名使用向量作为更大表达式的一部分。
我自己会写一个合适的函数:
> vrepl <- function(haystack, needle, replacement) {
+ haystack[haystack == needle] <- replacement
+ return(haystack)
+ }
>
> vrepl(c(3, 2, 1, 0, 4, 0), 0, 1)
[1] 3 2 1 1 4 1
但我想知道是否有一些标准功能可以完成这项工作,最好来自base 包,作为其他常用包的替代品。我相信使用这样的标准可能会使我的代码更具可读性,并且我不必在需要的地方重新定义该函数。
【问题讨论】:
-
as.numeric(gsub(0, 1, c(3, 2, 1, 0, 4, 0)))这样的东西有用吗? -
vec[vec==vec]<-replacement