删除名称与模式匹配的多个数据框的行
Remove rows for multiple dataframes having a name matching a pattern
我正在尝试删除具有相同结构但名称不同(保持相似名称结构)的多个数据帧的前 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_")))
知道怎么做吗?
非常感谢!
由于 mget
将其转换为列表,您可以使用 apply
系列函数:
rbindlist(lapply(mget(ls(pattern = "^Mydataframe_")), function(x) x[-c(1:9), ]))
这从 mget
中取出 list
并删除前 9 行,然后 rbind
从列表中删除到 data.table
。唯一的问题是您无法区分 data.frame
原始数据的一部分。
我正在尝试删除具有相同结构但名称不同(保持相似名称结构)的多个数据帧的前 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_")))
知道怎么做吗?
非常感谢!
由于 mget
将其转换为列表,您可以使用 apply
系列函数:
rbindlist(lapply(mget(ls(pattern = "^Mydataframe_")), function(x) x[-c(1:9), ]))
这从 mget
中取出 list
并删除前 9 行,然后 rbind
从列表中删除到 data.table
。唯一的问题是您无法区分 data.frame
原始数据的一部分。