R 添加新列并聚合数据
我是R编程的新手,遇到了一个问题 以下是一个示例数据集:R 添加新列并聚合数据,r,R,我是R编程的新手,遇到了一个问题 以下是一个示例数据集: df <- data.frame( area_id = c(31,34,36,33,28,35, 31,34,36,33,28,35), description = c('paramount','sony','star','miramax','pixar','zee', 'paramount','sony','star','miramax','pixar','zee'), footfall =
df <- data.frame(
area_id = c(31,34,36,33,28,35, 31,34,36,33,28,35),
description = c('paramount','sony','star','miramax','pixar','zee', 'paramount','sony','star','miramax','pixar','zee'),
footfall = c(200, 354, 543, 123, 456, 634, 356, 765, 345, 235, 657, 524),
income = c(21000, 19000, 35000, 18000, 12000, 190000, 21000, 19000, 35000, 18000, 12000, 190000),
year = c(2019, 2019, 2019, 2019, 2019, 2019, 2020, 2020, 2020, 2020, 2020, 2020));
df像这样做
library(tidyverse)
west <- c(28, 34, 36)
df %>% mutate(region = case_when(area_id %in% west ~ "West",
TRUE ~ "East")) %>%
pivot_longer(cols = c(footfall, income), names_to = "Header", values_to = "val") %>%
group_by(region, Header, year) %>% summarise(val = sum(val)) %>%
pivot_wider(id_cols = c(region, Header), names_from = year, values_from = val) %>%
mutate(Total = `2019` + `2020`) -> df2
# A tibble: 4 x 5
# Groups: region, Header [4]
region Header `2019` `2020` Total
<chr> <chr> <dbl> <dbl> <dbl>
1 East footfall 957 1115 2072
2 East income 229000 229000 458000
3 West footfall 1353 1767 3120
4 West income 66000 66000 132000
这将与class(df)
相同。有没有一种方法可以让我获得一个数据帧而不是tibble?data.frame和tibble除了打印方法外没有什么不同。请检查我编辑的答案。尽管如此,您仍然可以自由使用data.frame(df2)
使其像dataframe一样运行感谢您对@AnilGoyal的及时响应。
class(df2)
[1] "tbl_df" "tbl" "data.frame"