删除名称与模式匹配的多个数据框的行

时间:2019-05-13 14:56:39

标签: r list dataframe rbind

我正在尝试删除具有相同结构但名称不同(保持相似名称结构)的多个数据框的前9行。在我的示例中,有4个数据框,其名称分别为 Mydataframe_A,Mydataframe_B,Mydataframe_C,Mydataframe_D

当前它正在使用以下代码:

`Mydataframe_A`<- `Mydataframe_A`[-c(1:9),]
`Mydataframe_B`<- `Mydataframe_B`[-c(1:9),]
`Mydataframe_C`<- `Mydataframe_C`[-c(1:9),]
`Mydataframe_D`<- `Mydataframe_D`[-c(1:9),]

但是我想这样写,只用一行,而不必每次指定数据帧的每个名称。

我认为这可以通过使用模式名称和列表来实现,因为例如,这就是我要查找不同数据帧的方法:

All_mydataframes <- rbindlist(mget(ls(pattern = "^Mydataframe_")))

关于如何执行此操作的任何想法?

一吨!

1 个答案:

答案 0 :(得分:1)

由于EvaluateJSONPath将其转换为列表,因此您可以使用mget系列功能:

apply

这将从rbindlist(lapply(mget(ls(pattern = "^Mydataframe_")), function(x) x[-c(1:9), ])) 中提取list,并删除前9行,然后将其从列表中mget移至rbind。唯一的问题是您无法区分原始数据是data.table的一部分。