【问题标题】:Subset dataframe into a list将数据框子集到列表中
【发布时间】:2012-03-29 02:38:06
【问题描述】:

我有一个数据框,我想根据 schoolid 变量的唯一值对其进行子集化。然后这些将被计入一个列表,因此列表的每个成员都是数据框的一个子集。我显然知道如何为 schoolid 的特定值执行此操作,一次一个,但是我如何在不知道 schoolid 中可能出现哪些值的情况下系统地执行此操作?

感谢您的帮助! 杰夫

structure(list(schoolid = c(84351L, 84351L, 84351L, 84351L, 84351L, 
84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 
84351L, 84351L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 
84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 
84384L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 
84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 
84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 
84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84387L, 
84387L, 84387L, 84387L, 84387L, 84387L, 84387L, 84387L, 84387L, 
84388L, 84388L, 84388L, 84388L, 84388L, 84388L, 84388L, 84388L, 
84388L, 84389L, 84389L, 84389L, 84389L, 84389L, 84389L, 84389L, 
84389L, 84389L, 84395L, 84395L, 84395L, 84395L, 84395L, 84395L, 
84397L, 84397L, 84397L, 84397L, 84397L, 84397L, 84398L, 84398L, 
84398L, 84398L, 84398L, 84398L, 84351L, 84351L, 84351L, 84351L, 
84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 
84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 
84384L, 84384L, 84384L, 84385L, 84385L, 84385L, 84385L, 84385L, 
84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 
84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 
84386L, 84386L, 84386L, 84386L, 84387L, 84387L, 84387L, 84387L, 
84387L, 84387L, 84387L, 84387L, 84388L, 84388L, 84388L, 84388L, 
84388L, 84388L, 84389L, 84389L, 84389L, 84389L, 84389L, 84389L, 
84389L, 84389L, 84389L, 84397L, 84397L, 84398L, 84398L, 84398L, 
84398L, 84398L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 
84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 84351L, 
84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 84384L, 
84384L, 84384L, 84384L, 84384L, 84384L, 84385L, 84385L, 84385L, 
84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 84385L, 
84385L, 84385L, 84385L, 84385L, 84386L, 84386L, 84386L, 84386L, 
84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 84386L, 
84386L, 84386L, 84387L, 84387L, 84387L, 84387L, 84387L, 84387L, 
84387L, 84387L, 84388L, 84388L, 84388L, 84388L, 84388L, 84388L, 
84388L, 84388L, 84388L, 84389L, 84389L, 84389L, 84389L, 84389L, 
84389L, 84389L, 84395L, 84395L, 84395L, 84395L, 84397L, 84397L, 
84397L, 84397L, 84397L, 84397L, 84398L, 84398L, 84398L, 84398L, 
84398L, 84398L), subgroup = c("All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "All", "All", "All", "All", "All", "All", "All", "All", 
"All", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", 
"ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "ELL", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd", 
"SpEd", "SpEd", "SpEd", "SpEd", "SpEd", "SpEd"), grade = c(0L, 
0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 0L, 0L, 
0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 0L, 0L, 0L, 
1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 0L, 0L, 0L, 1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 0L, 0L, 0L, 1L, 1L, 
1L, 2L, 2L, 2L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 0L, 0L, 0L, 
1L, 1L, 1L, 2L, 2L, 2L, 5L, 5L, 5L, 6L, 6L, 6L, 0L, 0L, 0L, 1L, 
1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 
3L, 3L, 4L, 4L, 0L, 0L, 0L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 0L, 
0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 4L, 0L, 0L, 0L, 1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 
0L, 1L, 1L, 1L, 2L, 2L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 0L, 
0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 
3L, 4L, 4L, 4L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 4L, 
4L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 
0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 0L, 0L, 
1L, 1L, 1L, 2L, 2L, 2L, 0L, 0L, 0L, 1L, 1L, 1L, 2L, 2L, 2L, 0L, 
1L, 1L, 1L, 2L, 2L, 2L, 5L, 5L, 6L, 6L, 0L, 0L, 0L, 1L, 1L, 1L, 
0L, 0L, 0L, 1L, 1L, 1L), FnPLevel = structure(c(1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 
2L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 3L, 1L, 2L, 
3L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 
3L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 2L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 1L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L), .Label = c("AGL", "BGL", "OGL"), class = "factor"), 
    num = c(54L, 9L, 32L, 58L, 15L, 45L, 76L, 22L, 81L, 83L, 
    1L, 49L, 71L, 22L, 19L, 51L, 34L, 37L, 86L, 10L, 44L, 41L, 
    24L, 79L, 55L, 20L, 60L, 52L, 11L, 7L, 59L, 21L, 13L, 89L, 
    34L, 23L, 68L, 21L, 66L, 70L, 12L, 50L, 51L, 6L, 8L, 51L, 
    5L, 27L, 45L, 23L, 13L, 31L, 12L, 44L, 31L, 7L, 47L, 31L, 
    17L, 8L, 36L, 9L, 13L, 36L, 17L, 23L, 45L, 16L, 42L, 32L, 
    7L, 17L, 49L, 16L, 19L, 54L, 5L, 44L, 18L, 10L, 24L, 49L, 
    17L, 19L, 73L, 7L, 28L, 42L, 5L, 2L, 32L, 1L, 7L, 41L, 14L, 
    20L, 34L, 22L, 29L, 64L, 17L, 25L, 26L, 11L, 18L, 6L, 4L, 
    4L, 2L, 2L, 2L, 1L, 4L, 1L, 4L, 2L, 4L, 1L, 6L, 4L, 5L, 7L, 
    1L, 2L, 8L, 2L, 2L, 1L, 7L, 5L, 2L, 5L, 1L, 3L, 2L, 4L, 5L, 
    2L, 4L, 1L, 1L, 3L, 2L, 2L, 3L, 4L, 3L, 1L, 1L, 7L, 1L, 3L, 
    1L, 3L, 2L, 2L, 3L, 6L, 3L, 2L, 3L, 1L, 1L, 2L, 1L, 1L, 2L, 
    1L, 4L, 7L, 3L, 6L, 4L, 1L, 2L, 3L, 1L, 3L, 2L, 6L, 3L, 2L, 
    2L, 7L, 2L, 2L, 11L, 7L, 6L, 6L, 7L, 20L, 13L, 10L, 9L, 11L, 
    4L, 2L, 4L, 3L, 5L, 2L, 7L, 6L, 12L, 3L, 11L, 10L, 3L, 3L, 
    7L, 5L, 2L, 7L, 12L, 3L, 13L, 6L, 12L, 6L, 5L, 7L, 1L, 1L, 
    2L, 4L, 1L, 2L, 8L, 11L, 3L, 5L, 5L, 9L, 2L, 2L, 10L, 2L, 
    2L, 1L, 3L, 5L, 6L, 2L, 1L, 7L, 11L, 2L, 3L, 2L, 4L, 8L, 
    3L, 2L, 2L, 8L, 1L, 6L, 7L, 4L, 3L, 2L, 2L, 3L, 2L, 2L, 1L, 
    5L, 3L, 4L, 2L, 7L, 5L, 7L, 7L, 4L, 1L, 5L, 1L)), .Names = c("schoolid", 
"subgroup", "grade", "FnPLevel", "num"), row.names = c(NA, 279L
), class = "data.frame")

【问题讨论】:

  • 我不完全理解您的问题,但splitlapplysubset 可能有用。我认为您可能需要更清楚地说明您希望拆分的内容。你想要一个范围吗?一定的价值。我认为matchgregexpr 可能是解决方案的一部分。

标签: r


【解决方案1】:

只需使用split:

schoolid_groups <- split(Data, Data$schoolid)

【讨论】:

    【解决方案2】:

    看看plyr 包中的dlplyd=df 输入,l=list 输出,ply= 应用)

    library(plyr) 
    
    df <- data.frame(a=letters, b=rnorm(260))
    
    out <- dlply(df, .(a))
    
    str(out)
    

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 1970-01-01
      • 2021-12-16
      • 2015-03-28
      • 1970-01-01
      • 2013-11-19
      • 2019-11-12
      • 2019-09-06
      相关资源
      最近更新 更多