簡體   English   中英

如何從R中的excel復制數據透視表過程?

[英]How to replicate a pivot table procedure from excel in R?

我有一組包含三列的數據。 我想在左側“分組”我的第二列“位置”。 想象一下紐約、倫敦、柏林和所有列在左欄上的城市。

我想“分組”第三列是“種族”但作為新列

Location | White| Black |Asian|Grand Total
New York   700   465     323   1,488
London     1000  600     200   1,800

我有這個代碼

Attempt<-table %>%
group_by(`Location`) %>%
summarise(n())

但它讓我得到這個結果

Location|Grand Total
New York 1,488
London   1,800

在excel中做這樣的例子很容易。 我想在 R 中執行此操作。它只是計算值在表中出現的次數。

根據您的描述,這可能就是您要找的。

首先將group_by LocationRace以獲取小計計數。

然后您可以使用pivot_wider以寬格式獲得最終所需的表格。

最后一個rowSums將獲得一個Grand_Total (其中 -1 從計算中刪除Location列)。

我編了一些數據來說明。

library(tidyverse)

df %>%
  group_by(Location, Race) %>%
  summarise(Total = sum(n())) %>%
  ungroup() %>%
  pivot_wider(id_cols = Location, names_from = Race, values_from = Total, values_fn = list(Total = sum), values_fill = list(Total = 0)) %>%
  mutate(Grand_Total = rowSums(.[,-1]))

輸出

# A tibble: 3 x 5
  Location Black Asian White Grand_Total
  <fct>    <int> <int> <int>       <dbl>
1 Berlin       1     0     0           1
2 London       0     1     2           3
3 New York     1     0     1           2 

數據

df <- data.frame(
  ID = 1:6,
  Location = c("New York", "London", "Berlin", "London", "New York", "London"),
  Race = c("White", "White", "Black", "Asian", "Black", "White")
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM