簡體   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