如何在汇总table(使用summarize_all)时提取特定值?
How to extract specific values when making a summary table (using summarize_all)?
我的数据看起来像这样(尽管在 ~12 年内有数千个示例站点:
library(tidyverse)
df <- tribble(~Year, ~Sample, ~Total_A, ~Total_B, ~Total_C,
2000, 'Riverside', 990, 08, NA,
2000, 'Pasadena', 887, 101, 78,
2000, 'Goleta', 786, NA, NA,
2001, 'Riverside', 985, 89, 21,
2001, 'Pasadena', 992, 67, 33,
2002, 'Riverside', 991, 21, 09,
2002, 'Goleta', 351, 34, NA,
2002, 'Scottsdale', 345, NA, 75)
我使用 summarize all (below) 得到以下汇总数据 table。
library(dplyr)
df1 <- df %>%
group_by(Sample) %>%
summarize_all(funs(sum(!is.na(.))))
Sample, Total_A, Total_B, Total_C
Riverside, 3, 3, 2
Pasadena, 2, 2, 2
Goleta, 2, 1, 0
Scottsdale, 1, 0, 1
我想在数据 table 中添加一列,以提供每个样本可用的每年数据。无论如何我可以使用 summarize_all (或任何其他总结命令?)来做到这一点我想也许可以使用 "paste unique$Year" 但不确定是否可能。我是 R 的新手,非常感谢任何指导。这是我正在寻找的东西:
Sample, Total_A, Total_B, Total_C, Years_Available
Riverside, 3, 3, 2, 2000/2001/2002
Pasadena, 2, 2, 2, 2000/2001
Goleta, 2, 1, 0, 2000/2002
Scottsdale, 1, 0, 1, 2002
你可以试试这个:
df1 <- df %>%
group_by(Sample) %>%
mutate(years = toString(Year)) %>%
group_by(Sample, years) %>%
summarize_all(funs(sum(!is.na(.))))
我得到的输出是:
Sample years Year Total_A Total_B Total_C
<chr> <chr> <int> <int> <int> <int>
1 Goleta 2000, 2002 2 2 1 0
2 Pasadena 2000, 2001 2 2 2 2
3 Riverside 2000, 2001, 2002 3 3 3 2
4 Scottsdale 2002 1 1 0 1
我的数据看起来像这样(尽管在 ~12 年内有数千个示例站点:
library(tidyverse)
df <- tribble(~Year, ~Sample, ~Total_A, ~Total_B, ~Total_C,
2000, 'Riverside', 990, 08, NA,
2000, 'Pasadena', 887, 101, 78,
2000, 'Goleta', 786, NA, NA,
2001, 'Riverside', 985, 89, 21,
2001, 'Pasadena', 992, 67, 33,
2002, 'Riverside', 991, 21, 09,
2002, 'Goleta', 351, 34, NA,
2002, 'Scottsdale', 345, NA, 75)
我使用 summarize all (below) 得到以下汇总数据 table。
library(dplyr)
df1 <- df %>%
group_by(Sample) %>%
summarize_all(funs(sum(!is.na(.))))
Sample, Total_A, Total_B, Total_C
Riverside, 3, 3, 2
Pasadena, 2, 2, 2
Goleta, 2, 1, 0
Scottsdale, 1, 0, 1
我想在数据 table 中添加一列,以提供每个样本可用的每年数据。无论如何我可以使用 summarize_all (或任何其他总结命令?)来做到这一点我想也许可以使用 "paste unique$Year" 但不确定是否可能。我是 R 的新手,非常感谢任何指导。这是我正在寻找的东西:
Sample, Total_A, Total_B, Total_C, Years_Available
Riverside, 3, 3, 2, 2000/2001/2002
Pasadena, 2, 2, 2, 2000/2001
Goleta, 2, 1, 0, 2000/2002
Scottsdale, 1, 0, 1, 2002
你可以试试这个:
df1 <- df %>%
group_by(Sample) %>%
mutate(years = toString(Year)) %>%
group_by(Sample, years) %>%
summarize_all(funs(sum(!is.na(.))))
我得到的输出是:
Sample years Year Total_A Total_B Total_C
<chr> <chr> <int> <int> <int> <int>
1 Goleta 2000, 2002 2 2 1 0
2 Pasadena 2000, 2001 2 2 2 2
3 Riverside 2000, 2001, 2002 3 3 3 2
4 Scottsdale 2002 1 1 0 1