如何从 R 中的 table() 函数获取唯一值
How to get unique values from table() function in R
我有一个包含 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)
我们可以创建一个逻辑向量并对 table
输出
的 names
进行子集化
names(freq_years)[freq_years == 12]
这里是 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
我有一个包含 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)
我们可以创建一个逻辑向量并对 table
输出
names
进行子集化
names(freq_years)[freq_years == 12]
这里是 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