首页 > 解决方案 > 在 R 中一次替换多列中的值的最简单方法

问题描述

我正在尝试用 NA 替换我的数据框中的“*”。我尝试使用 gsub 函数如下:

df = data.frame(x = c('*',2,3), y = c(3,3,5))

df[,1:2] = apply(df[,1:2], 2, function(x) gsub('*',NA,x))

虽然我的数据框中只有一个 * 但 gsub 用 NA 替换了所有数据!似乎 gsub 与 *. 我认为这是在我的数据框中用 NA 替换 * 的最简单方法,但它失败了。有人有更好的主意吗?

标签: rgsub

解决方案


使用fixed = TRUE

df[,1:2] = apply(df[,1:2], 2, function(x) gsub('*',NA,x,fixed = TRUE))

*用作regular expression否则。


推荐阅读