【问题标题】:Can you create a new dataframe based on number of rows from other dataframe on R? [duplicate]您可以根据 R 上其他数据框的行数创建一个新的数据框吗? [复制]
【发布时间】:2020-11-19 15:17:15
【问题描述】:

我有一个包含 900k 行的 df,每行都有一个动作(总共大约 80 个不同的动作)和一个数字(总共大约 500 个不同的数字),所以它看起来像这样:

       Action       Number 
         a            1
         b            3
         a            7
         b            3
         b            1

如何使用 R 创建一个新的 df,它使用该组合创建一个包含数字、操作和行数的新行,所以它看起来像这样:

       Number       Action         Total
         1            a              1
         1            b              1
         3            b              2
         7            a              1

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    试试dplyr:

    library(dplyr)
    #Code
    newdf <- df %>% group_by(Number,Action) %>% summarise(N=n())
    

    输出:

    # A tibble: 4 x 3
    # Groups:   Number [3]
      Number Action     N
       <int> <chr>  <int>
    1      1 a          1
    2      1 b          1
    3      3 b          2
    4      7 a          1
    

    或在base R 中创建指标变量N 并使用aggregate()

    #Base R
    df$N <- 1
    newdf <- aggregate(N~.,data=df,sum)
    

    输出:

      Action Number N
    1      a      1 1
    2      b      1 1
    3      b      3 2
    4      a      7 1
    

    【讨论】:

    • 在基础 R 中有 length 函数。在 dplyr 中有一个 count 函数。总而言之,不用回答 10 岁的骗子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2020-10-03
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多