我有一份数据,其中每个单元格都由字符组成。
我希望将只包含0的字符串条目替换为000。这意味着我的数据应该如下所示:
在这两种情况下,它都将所有的0替换为000。最终的数据看起来像这样,
这不是我想要的。有什么办法解决这个问题吗?
x1 <- c(100, 0, 120)
x2 <- c(0, 0, 0)
x3 <- c(110, 0, 0)
data<- data.frame(x1, x2, x3)
testdata <- lapply(data, as.character)
testdata
$`x1`
[1] "100" "0" "120"
$x2
[1] "0" "0" "0"
$x3
[1] "110" "0" "0"
我希望将只包含0的字符串条目替换为000。这意味着我的数据应该如下所示:
> str(testdata)
List of 3
$ x1: chr [1:3] "100" "000" "120"
$ x2: chr [1:3] "000" "000" "000"
$ x3: chr [1:3] "110" "000" "000"
参考这个,我可以写成如下代码:
testdata2 <- data.frame(lapply(testdata, function(x) {gsub("0", "000", x)}))
或者是这样的:
testdata %>% mutate_all(funs(str_replace_all(., "0", "000")))
在这两种情况下,它都将所有的0替换为000。最终的数据看起来像这样,
> testdata
x1 x2 x3
1 1000000 000 11000
2 000 000 000
3 12000 000 000
这不是我想要的。有什么办法解决这个问题吗?