繁体   English   中英

如何在 R 中生成一个可呈现的表,该表对不同列中的字​​符串和数字之间的匹配进行计数/求和

[英]How to generate a presentable table in R that counts/sums matches between string and numeric in different columns

我有一个看起来像这样的数据集:

年份类型国家大小

1900 1 一 300
1901 1 359
1902 1 839
1903 1 A 35
1900 2 乙 1235
1904 3 C 75
1901 4 B 100
1902 4 B 467
1903 4 乙 2356
1904 4 乙 6940
1905 4 乙 34
1910 5 一 3424

1-5 是不同的类型
AD是不同的国家

对于某些类型(例如类型 1),我有 4 年的连续数据。 对于其他(例如类型 3),我只有 1 年的信息。 在真实的数据框中,对于某些类型,我有 40 年的数据。

每种类型都有一个通讯国,我总共有5个不同的国家。

(实际上,这个数据库是 > 10k 行和 > 15 个国家。)

我想打印一个像样的表格,它的正式布局会告诉我:

  • 每个国家/地区存在多少种独特类型(例如 country C=1, Country A=5 )
  • 每个国家/地区的总大小,它汇总了每个国家/地区的所有大小(例如,国家/地区 C = 175)

谢谢

我想这就是你要找的:

  • 代码
library(data.table)

setDT(df)[, .(N = .N, Size = sum(Size)), by = .(Country)]
  • 输出
#>    Country N  Size
#> 1:       A 5  4957
#> 2:       B 6 11132
#> 3:       C 1    75
  • 您的数据
df <- data.frame(Year = c(1900,1901,1902,1903,1900,1904,1901,1902,1903,1904,1905,1910),
                 Type = c(1,1,1,1,2,3,4,4,4,4,4,5),
                 Country = c("A","A","A","A","B","C","B","B","B","B","B","A"),
                 Size = c(300,359,839,35,1235,75,100,467,2356,6940,34,3424))

reprex 包(v0.3.0) 于 2021 年 11 月 1 日创建

我们可以使用gt包。

library(dplyr)
library(gt)
df %>%
  group_by(Country) %>% 
  summarize(N = n(), Size=sum(Size)) %>% 
  gt()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM