在很多列中应用和运行 gsub
Apply and function a gsub in a lots of columns
我是 R 的新手,我想在名为 x
的数据框中的第 6 列到第 12 列中应用 gsub
函数。但是,我有点卡住了。我开始使用:
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
.
也会很棒
这是另一种解决方案。它returns原始数据框的所有列
library(dplyr)
mutate_at(x, 6:12, gsub("\.", "", .))
这里有一个data.table方式的解决方案。当table很大并且时间是一个关键因素时值得考虑。
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))
我是 R 的新手,我想在名为 x
的数据框中的第 6 列到第 12 列中应用 gsub
函数。但是,我有点卡住了。我开始使用:
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
.
这是另一种解决方案。它returns原始数据框的所有列
library(dplyr)
mutate_at(x, 6:12, gsub("\.", "", .))
这里有一个data.table方式的解决方案。当table很大并且时间是一个关键因素时值得考虑。
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))