r语言 - 在许多列中应用并运行gsub



我对R有点陌生,我想在我的数据框架x中应用gsub在列6到12中的函数。然而,我被困住了。我开始使用:

gsub("\.", "",x[,c(6:12)])

但是它只返回了几行。然后,我试着用这个:

x1<-apply(x,c(6:12),function(x) gsub("\.", "",x))

但是我得到了以下错误:

Error in if (d2 == 0L) { : missing value where TRUE/FALSE needed

也试过这个:

for (i in x[,c(6:12)]) 
{a<-data.frame(gsub("\.", "",i))}

谁有什么建议或解决办法?如果有人教我如何使用apply函数和for,那就太好了。

这是另一个解决方案。它返回原始数据框

的所有列。
library(dplyr)
mutate_at(x, 6:12, gsub("\.", "", .))

这是一个数据中的解决方案。表方式。当表很大且时间是关键因素时,值得考虑。

library(data.table)     # load library
x = as.data.table(x)    # convert data.frame into data.table
cols = names(x)[6:12]   # define which columns to work with
x[ , (cols) := lapply(.SD, function(x) {gsub("\.", "", x)}), .SDcols = cols] # replace
x # enjoy results

使用评论中的apply添加解决方案,因为这个确实帮助了我:

x1 <- apply(x[,6:12], 2, function(x) gsub("\.", "",x))

相关内容

  • 没有找到相关文章

最新更新