用括号括起以sd结尾的变量

  • 本文关键字:结尾 变量 sd r
  • 更新时间 :
  • 英文 :


我有一个大表格,我想在每个以"_sd"结尾的变量周围加上括号。

下面是一个例子:

a<- c(0,2,3,4,10,7,6,5,4,3)
b_sd<-c(0,2,3,4,8,6,5,4,3,1)
c<- c(0,2,3,4,10,7,6,5,4,3)
d_sd<-c(0,2,3,4,8,6,5,4,3,1)
dta <- data.frame(a=a, b_sd=b_sd, c=c, d_sd=d_sd)
dta
# this is the slow way:
dta[,2] <- paste0("(", dta[,2], ")")
dta[,4] <- paste0("(", dta[,4], ")")

# this is what I want:
dta

上面的代码将工作,但它是非常慢的所有变量,我有。我如何使它自动化?1. 找到以_sd结尾的变量,并把括号括起来?

谢谢。

你可以做

namesWithSd <- grep("_sd",names(dta))
dta[namesWithSd] <- lapply(dta[namesWithSd], function(colVals) {
paste0("(",colVals,")")
})

如果您的数据集很大,请尝试数据。用于此类操作的表包。如果你想了解更多,这里有一个小插图。

下面是利用数据的代码。表包:

library(data.table)
##Set as data table
setDT(dta)
##Select the relevant variables
sd_names<-grep("_sd",names(dta),value = T)
dta[,(sd_names):=lapply(.SD,function(x) {paste0("(",x,")")}),.SDcols=sd_names]
###
dta

最新更新