r - 使用带有变量的 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
}
解决方案
你可以试试
for (j in seq_along(dat)) {
new_dat <- dat[,grepl(paste0('b',as.numeric(j)), names(dat)), drop=FALSE]
}