![](/img/trans.png)
[英]Following a list of values, I want to subset a data frame in r with rows containing the values in a certain column
[英]R. I am trying to subset my data frame by decades. Therefore I want to subset by using values of a column
我有从 1921 年到 2020 年的年份列。我想根据几十年进行分析,所以我想将数据框子集为几十年。 我尝试了几个代码,但他们不断给出错误。
decade1=data_all%>%filter(data_all$year%>%1920:1929)
错误:
filter()
输入..1
有问题。 x 3 arguments 传递给 ':' 这需要 2 ℹ 输入..1
是data_all$year %>% 1920:1929
。 运行rlang::last_error()
以查看错误发生的位置。
decade1=data_all%>%filter(data_all$year==1920:1929)
警告消息:在 data_all$year == 1920:1929 中:较长的 object 长度不是较短 object 长度的倍数
我应该使用什么代码?
我们可以在filter
中将语法更改为%in%
library(dplyr)
data_all%>%
filter(year %in% 1920:1929)
It may help to group the years first.
df <- data.frame(
year = sample(1920:2020,50,replace = TRUE)
)
df %>%
mutate( decade = cut(df$year, breaks=c(1910,1919,1929,1939,1949,1959,1969,1979,1989,1999,2009,2019,2029),
labels=c("1910s","1920s","1930s","1940s","1950s","1960s","1970s","1980s","1990s","2000s","2010s","2020s"))) %>%
arrange(year)
我对练习的解决方案是(与您的非常相似):
decades <- seq(1890,2010, by=10)
data$decade <- as.factor(data$Year %/% 10 * 10)
print(data$decade)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.