【问题标题】:How can I create a column or summary table that lists the available years of data that a value has?如何创建列或汇总表来列出值具有的可用数据年份?
【发布时间】:2026-02-14 16:15:01
【问题描述】:

所以我有以下看起来像这样的数据(它是一个样本,在大约 15 年的时间里有数百行)。我想创建一个列(或汇总表),显示每个位置可用数据的年份。

Year, Place
2000, 'Adak'
2000, 'Kodiak'
2000, 'Saltsdale'
2001, 'Adak'
2001, 'Saltsdale'
2001, 'Tawney'
2002, 'Adak'
2002, 'Kodiak'
2002, 'Tawney'

如果可能的话,我真的希望它看起来像这样:

Place, Years_Available 
'Adak', 2000/2002
'Kodiak', 2000/2002
'Saltsdale', 2000/2001
'Tawney', 2001/2002

我使用了 summarise_all,但它给了我一个奇怪的输出,其中 Years_Available 列只是在第一年重复了 15 次。

b1 <- b %>% 
    group_by(Place) %>%
    mutate(years = toString(Year)) %>%
    group_by(Place,years) %>%
    summarize_all(funs(sum(!is.na(.))))

【问题讨论】:

    标签: r dplyr summarize


    【解决方案1】:

    我们可以使用range

    df1 %>%
       group_by(Place) %>% 
       summarise(Year = toString(range(Year)))
    

    【讨论】:

    • 当我将其应用于更大的数据集时,不幸的是,每个地方的范围都相同(第一年到最后一年)。
    • @JulietR 你能检查一下你的Year 列是字符串还是数字?