【问题标题】:Keep certain number of rows per ID每个 ID 保留一定数量的行
【发布时间】:2020-05-13 02:28:33
【问题描述】:

我想为每个变量保留一定数量的行: 比如假设我有如下数据集(实际数据集比较大):

part<-c(1,1,1,2,2,2,3,3)
choice<-c(6,7,15,42,1,1,4,5)
data<-cbind(part,choice)
des_data<-data[c(1,2,4,5,7,8),]

      part choice
[1,]    1      6
[2,]    1      7
[3,]    1     15
[4,]    2     42
[5,]    2      1
[6,]    2      1
[7,]    3      4
[8,]    3      5

我想只保留每个“部分”(参与者)的前 2 个观察结果。

这样最终的数据是这样的:

      part choice
[1,]    1      6
[2,]    1      7
[3,]    2     42
[4,]    2      1
[5,]    3      4
[6,]    3      5

我该怎么做?

谢谢!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:
    library(dplyr)
    data %>%
      as.data.frame %>% #(your example code creates a matrix)
      group_by(part) %>%
      slice(1:2)
    

    【讨论】:

      【解决方案2】:

      data.table 的选项

      library(data.table)
      as.data.table(data)[, .SD[1:2], part]
      #    part choice
      #1:    1      6
      #2:    1      7
      #3:    2     42
      #4:    2      1
      #5:    3      4
      #6:    3      5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-22
        • 2022-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多