R语言 如何汇总数据框中的行并保留分组变量第二次出现时的字符值?

k0pti3hp  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(170)

我尝试通过添加数字行值并保留分组变量第二次出现时的字符值来汇总数据框中的行。
我有数据框列在下面:

df <- data.frame(
  Season = c('Summer', 'Fall', 'Fall', 'Winter','Spring', 'Spring'),
  Number = c(1,2,2,6,7,2),
  Character = c('1s', '2s', 's', '1s', '3s', 'q')
)

df值

Season Number Character
1 Summer      1        1s
2   Fall      2        2s
3   Fall      2         s
4 Winter      6        1s
5 Spring      7        3s
6 Spring      2         q

我尝试将数据汇总为下面列出的格式,但是dplyr的汇总函数不适用于非数值列。
以下是我的预期输出...

Season Number Character
1 Summer      1        1s
2   Fall      4        s
4 Winter      6        1s
5 Spring      9        q
xlpyo6sf

xlpyo6sf1#

您可以在summarize()中使用[[2]],还必须处理只有一行的组。
第一个

li9yvcax

li9yvcax2#

一种方法是使用last来选择正确的字符串,因为它总是这样排序的。

library(dplyr)

df %>% 
  group_by(Season) %>% 
  summarize(across(Number:Character, ~ ifelse(is.numeric(.x), sum(.x), last(.x))))
# A tibble: 4 × 3
  Season Number Character
  <chr>   <dbl> <chr>
1 Fall        4 s
2 Spring      9 q
3 Summer      1 1s
4 Winter      6 1s

相关问题