r - 在R中按月和年选择数据
问题描述
我有一个按月和年排序的数据框。我只想选择整数年,即如果数据从 2002 年 7 月开始,到 2010 年 9 月结束,那么只选择 2002 年 7 月到 2010 年 6 月的数据。如果数据从 1992 年 9 月开始,到 2000 年 3 月结束,那么只选择从 1992 年 9 月到 1999 年 8 月的数据。无论其间缺失的月份如何。
数据可以从以下链接上传: 在此处输入链接描述
编码
mydata <- read.csv("E:/mydata.csv", stringsAsFactors=TRUE)
这是手动选择
selected.data <- mydata[1:73,] # July 2002 to June 2010
如何通过编码来实现。
解决方案
这是一个基本解决方案,可重现您的手动子集:
mydata <- read.csv("D:/mydata.csv", stringsAsFactors=F)
lookup <-
c(
January = 1,
February = 2,
March = 4,
April = 4,
May = 5,
June = 6,
July = 7,
August = 8,
September = 9,
October = 10,
November = 11,
December = 12
)
mydata$Month <- unlist(lapply(mydata$Month, function(x) lookup[match(x, names(lookup))]))
first.month <- mydata$Month[1]
last.year <- max(mydata$Year)
mydata[1:which(mydata$Month==(first.month -1)&mydata$Year==last.year),]
基本上,我将月份名称转换为数字,并找到数据框中出现的第一个月之前的月份,即数据框的最后一年。
推荐阅读
- google-chrome - “元素不可点击”有错误的坐标
- reactjs - TypeError:无法在 React 中读取 null 的属性“标签”
- powerbi - DAX 条件和
- primefaces - p:dataTable 不显示每个选定的 p:selectManyCheckbox
- ansible - 挂载模块在 Ansible 中是如何工作的?
- python - 使用线程时 Matplotlib 数据损坏
- python - 熊猫中的布尔值和缺失值
- angular - 在 Angular 7 中使用 observable 进行变更检测
- ios - iOS Google Cast SDK 4.4.4 - 架构 arm64 的重复符号
- wcf - 在 Xamarin Forms 中使用 WCF 服务