更快地对列表进行重复子集化
Faster way to do repetitive subsetting of a list
这是我的第二个问题。这与我在这里的第一个问题有关:
我正在分析 NHL 选秀数据。看了第一个问题的答案,
我学会了使用拆分:
canucks_year <- split(canucks, canucks$Year)
但我想制作新对象,例如 canucks_2000、canucks_2001 只包含相应年份的数据框。所以,我编码:
canucks_2000 <- canucks_year[["2000"]]
canucks_2001 <- canucks_year[["2001"]]
canucks_2002 <- canucks_year[["2002"]]
canucks_2003 <- canucks_year[["2003"]]
有什么神奇的方法可以使用 R 中的某些函数来自动执行此过程吗?
您可以使用一个名为 list2env
的函数,它允许您将列表中的所有元素放入指定的环境中。
names(canucks_year) = paste0('canucks_', names(canucks_year))
list2env(canucks_year, envir = .GlobalEnv)
我首先将您列表中的元素从 2000、2001、2002 重命名为 canucks_2000、canucks_2001、canucks_2002、...然后使用 list2env
将所有元素放入全局环境中。
这是我的第二个问题。这与我在这里的第一个问题有关:
我正在分析 NHL 选秀数据。看了第一个问题的答案, 我学会了使用拆分:
canucks_year <- split(canucks, canucks$Year)
但我想制作新对象,例如 canucks_2000、canucks_2001 只包含相应年份的数据框。所以,我编码:
canucks_2000 <- canucks_year[["2000"]]
canucks_2001 <- canucks_year[["2001"]]
canucks_2002 <- canucks_year[["2002"]]
canucks_2003 <- canucks_year[["2003"]]
有什么神奇的方法可以使用 R 中的某些函数来自动执行此过程吗?
您可以使用一个名为 list2env
的函数,它允许您将列表中的所有元素放入指定的环境中。
names(canucks_year) = paste0('canucks_', names(canucks_year))
list2env(canucks_year, envir = .GlobalEnv)
我首先将您列表中的元素从 2000、2001、2002 重命名为 canucks_2000、canucks_2001、canucks_2002、...然后使用 list2env
将所有元素放入全局环境中。