我收到了一个生成一堆对象的脚本。我想使用bind_rows合并多个数据框。我可以使用grep选择正确的对象,但无法将这些对象名称作为参数传递给bind_rows。
例如,我想选择以jar {
manifest {
attributes 'Main-Class': `mainClassName`
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runTimeJars.collect { it.isDirectory() ? it : zipTree(it) }
}
}
开头的对象,并将其传递给bind_rows。在下面的示例中,我希望有一个名为df
的数据帧,该数据帧具有data
的数据帧3次。
mtcars
答案 0 :(得分:0)
使用mget
的建议是有意义的,尽管它返回一个列表,所以您将需要使用do.call
来执行`rbind操作。
str( do.call( rbind, mget(ls( patt="^df.") ) ) )
'data.frame': 96 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
我认为使用mget
和do.call
(而不是冒犯像我这样的被称为R纯粹主义者的人的机会较小。我选择对{{1 }}比起先获取所有工作空间名称,然后使用grep从中进行选择更为简洁。