创建多个数据框

时间:2019-08-12 05:22:16

标签: r

我想创建多个DF,其中每个新DF仅包含该学生的观察结果。当前,我使用以下代码创建一个新的DF。我重复一遍,更改学生姓名。

James <- All_Results [which(All_Results$`Student.x` =='James'),]

DF:全部结果

 Student  Score_Jan  Score_Feb  Score Mar
 James       12          76          23
 James       52          86          63     
 James       19          74          83
 Nick        72          26          54
 Nick        92          16          43
 Nick        12          76          23
 Tony        87          36          52
 Tony        22          46          33

如果我有以下内容,该怎么办

 c(James, Nick, Tony)

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

如果length中的vector大于或等于1,则可以选择%in%

newdat <- All_Results[All_Results$`Student.x` %in% c('James', 'Nick', 'Tony'),]

它还将处理NA元素,因此不需要用which换行


如果打算创建单独的data.frame,请使用split

lst1 <- split(All_Results, All_Results$`Student.x`)

如果我们只需要元素的子集,则使用之前创建的'newdat'

lst1 <- split(newdat, new$`Student.x`)

它将返回list中的data.frame个。不建议在全局环境中创建多个data.frame对象。但是,可以使用assignlist2env

list2env(lst1, .GlobalEnv)