这是一个非常简单的问题,但我似乎无法回答。我想创建一个匹配模式的data frames
列表,然后从全局环境创建rm
个列表。
要匹配的模式是“water_land_by_owntype_*
”
这是我尝试过的,但它不起作用......我想b / c它不知道在哪里搜索字符串。
rm (matches <- list(
grep('water_land_by_owntype_*')))
-al
答案 0 :(得分:5)
# Create some data.frame
water_land_by_owntype_1 <- mtcars
water_land_by_owntype_2 <- mtcars
water_land_by_owntype_3 <- mtcars
water_land_by_owntype_4 <- mtcars
water_land_by_owntype_5 <- mtcars
# Put them in a list
water_land_by_owntype <- lapply(ls(pattern = "water_land_by_owntype_.*"), get)
# or more directly
water_land_by_owntype <- mget(ls(pattern = "water_land_by_owntype_.*"))
# Delete them
rm(list = ls(pattern = "water_land_by_owntype_.*"))
答案 1 :(得分:0)
这可能是最简单的方法。
1.用ls()提取变量
2.检测(返回布尔)模式
3.找到和子集
4.删除
library(stringr)
a = ls()
index = which(str_detect(ls, "water_land_by_owntype_"))
b = a[index]
rm(b)
希望这有帮助,