首页 > 解决方案 > 您可以根据 R 上其他数据框的行数创建一个新的数据框吗?

问题描述

我有一个 df 有 900k 行,每一行都有一个动作(总共大约 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

标签: rdataframe

解决方案


尝试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

推荐阅读