R 如何将数据帧与对象名称中的匹配字符合并?

R 如何将数据帧与对象名称中的匹配字符合并?,r,dataframe,names,rbind,R,Dataframe,Names,Rbind,我有一组单独的数据帧,它们的名称类似于day01\u 01\u 1of2,day01\u 01\u 2of2,day01\u 02\u 1of2,等等 我想创建一个条件语句,它将查找第一个字符匹配的数据帧(即,day01_01),并将行绑定在一起。我找不到任何方法来做这件事 我可以操作R中列表中的数据: 或来自全局环境中的单个数据帧 ls() [1] "day01_01_1of2" "day01_01_2of2" "day01_02_1of2" "day01_02_2of2" "day01_

我有一组单独的数据帧,它们的名称类似于
day01\u 01\u 1of2
day01\u 01\u 2of2
day01\u 02\u 1of2
,等等

我想创建一个条件语句,它将查找第一个字符匹配的数据帧(即,
day01_01
),并将行绑定在一起。我找不到任何方法来做这件事

我可以操作R中列表中的数据:

或来自全局环境中的单个数据帧

ls()
 [1] "day01_01_1of2" "day01_01_2of2" "day01_02_1of2" "day01_02_2of2" "day01_03_1of2"
 [6] "day01_03_2of2" "day01_04_1of2" "day01_04_2of2" "day01_05_1of2" "day01_05_2of2"
[11] "day01_06_1of2" "day01_06_2of2" "day01_07_1of2" "day01_07_2of2" "day01_08_1of2"
[16] "day01_08_2of2" "day01_09_1of2" "day01_09_2of2" "day01_10_1of2" "day01_10_2of2"
我正在寻找任何解决方案,无论是在列表中还是在列表之外


谢谢你能给我的帮助

我们可以用向量的子串对向量进行拆分

str1 <- ls()
lst1 <- split(str1, sub("_[^_]+$", "", str1))
lst2 <- lapply(lst1, function(x) do.call(rbind, mget(x, inherits = TRUE)))

str1感谢您的支持。我收到一个错误:错误:找不到“day01\u 01\u 1of2”的值6。停止(gettextf(“未找到%s的值”,sQuote(x)),调用=FALSE)5。(函数(x)stop(gettextf(“未找到%s的值”),sQuote(x)),call.=FALSE)(“day01_01_1of2”)4。mget(x)3。打电话给(rbind,mget(x))2。乐趣(X[[i]],…)1。lapply(lst1,函数(x)do.call(rbind,mget(x)))是否有办法对列表中的所有数据帧执行相同的操作(即str1实际上是所有数据帧的列表)?@K8Otter
ls()
返回在全局环境中创建的所有对象。如果您只创建了data.frame,则
mget
将获得
列表中的值。我没有完全理解您的问题,第三行是否可以进行调整,使其在列表中的数据帧上使用rbind,而不是在全局环境中使用rbind可能是您想要的
lappy(lst1,function(sublst)do.call(rbind,sublst))
Good。保留为单个列表,而不是多个对象。由于它们是命名元素,只需在子集列表上使用提取方法
[
mylistofdfs[grep(“day01_01”,names(mylistofdfs))]
。然后
rbind
cbind
,或
merge
。无需使用
ls
get
,或
mget>遍历全局环境。