首页 > 解决方案 > 使用带有变量的 grepl

问题描述

我有一个大数据框,想选择某些列。

是否可以使用短命令选择列名的字符串和数值?在 python 中,它将是'b'+str(j)。我尝试了 as.characater(j),但没有帮助。

a=c(1:4)
ab1=c(1,1,1,1)
ab2=c(2,1,1,1)
ab3=c(3,1,1,1)
dat <- data.frame(a,ab1,ab2,ab3)
for (j in c(1:3)) {
  new_dat <- dat[grepl('b'&j), names(dat)] #this does not work: Just to indicate what i want
    #do something
}

标签: r

解决方案


你可以试试

for (j in seq_along(dat)) {
        new_dat <- dat[,grepl(paste0('b',as.numeric(j)), names(dat)), drop=FALSE]

}

推荐阅读