使用名称向量将数据框名称分配给列表元素

时间:2014-09-10 09:17:04

标签: r assign data-management

我有一个数据框,'mydata':

head(mydata)

ID      MDC
000001  21A
000002  5
000003  8
...

我将数据框拆分为其中一个列值,即“MDC”。这创建了一个列表,按列值'MDC'细分为更多列表:

mylist <- split(mydata, mydata$MDC, drop=TRUE)
summary(mylist)

    Length Class      Mode
0   75     data.frame list
1   75     data.frame list
10  75     data.frame list
11  75     data.frame list
12  75     data.frame list
21A 75     data.frame list
...

我现在想要为每个MDC创建一个具有相应名称的数据框,例如: 'MDC1'。 如何将MDC值分配给列表元素?

由于

1 个答案:

答案 0 :(得分:3)

看起来这应该有效

MDC <- paste0("MDC", sort(unique(mydata$MDC)))
names(mylist) <- MDC
list2env(mylist, .GlobalEnv)
ls() # Checking environment
## [1] "MDC"    "MDC21A" "MDC5"   "MDC8"   "mydata" "mylist"

修改 Per @ flodel的评论 - 如果您想对这些数据框进行进一步操作,则不应将它们复制到全局环境中。您应该将其保留在mylist中,并使用lapplyrapply

等功能对该列表执行所有操作