如何从R中的table()函数中获取唯一值?

问题描述 投票:0回答:1

我有一个31列的数据框架。在年份(名为 "Anos")一列中,我有重复的年份,当我使用table(df$Anos)时,我得到了年份的频率。我只需要有12个观测值的年份(12个月)。.

例子:

freq_years <- table(df$Anos) freq_years Result: 2009 2010 2011 2012 2013 2014 2015 2017 2018 2019 2020 10 12 12 3 11 6 8 12 12 12 5

如何在一个新的变量中自动获得只有freq=12的年份?(也许像2010,2011,2018,2019)

r dataframe select frequency
1个回答
1
投票

这里是一个 tidyverse 版本。根据您与数据框架中其他30列的使用情况,将数据保持为 df2 可能是有用的。

install.packages("dplyr")
install.packages("magrittr")
library("magrittr")
library("dplyr")
#create example dataset
df <- data.frame("Anos" = c(rep(2009,10),
                            rep(2010,12),
                            rep(2011,12),
                            rep(2012,3),
                            rep(2013,11),
                            rep(2014,6),
                            rep(2015,8),
                            rep(2016,12),
                            rep(2017,12)))

head(df)

# count number of years by row and filter to those with only 12 
df2 <- df %>% group_by(Anos) %>% count() %>% filter(n == 12)

head(df2)

# create variable with list of years that have exactly 12 rows
variable <- df2$Anos

variable

0
投票

我们可以创建一个逻辑向量,并将其子集为 namestable 产出

names(freq_years)[freq_years == 12]
© www.soinside.com 2019 - 2024. All rights reserved.