Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对变量使用grepl_R - Fatal编程技术网

对变量使用grepl

对变量使用grepl,r,R,我有一个大数据框,想选择某些列 可以用短命令选择列名称的字符串和数值吗? 在python中,它将是'b'+str(j)。我试着用.characatet(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 d

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

可以用短命令选择列名称的字符串和数值吗? 在python中,它将是'b'+str(j)。我试着用.characatet(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
}
a=c(1:4)
ab1=c(1,1,1,1)
ab2=c(2,1,1,1)
ab3=c(3,1,1,1)
dat你可以试试

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

}
用于(沿(dat)方向的顺序j){

新数据我不理解你的代码。循环
对于(j in 3)
没有任何意义,因为
j
只会
3
grepl('b'&j)
是无效的R代码(你应该看一看
?grepl
)。你能根据你给出的样本数据编辑你的问题以包括你的预期输出吗?循环
(j在3中)
没有任何意义,因为
j
将始终并且只会是
3
@mauritservers,我没有注意到。我想OP要求正常的for循环“我希望如此”,有一个问题是将迭代器作为有效参数传递给
grepl
。是的,我也不是很确定OP试图做什么,因此我在上面的评论。OP应该澄清。谢谢。粘贴是一个很好的解决方案:dat[grepl(paste0('b',j),names(dat))]