我对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))