Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于变量内字符串的数值的数据帧子集_R_Dataframe_Time Series_Subset_As.date - Fatal编程技术网

R 基于变量内字符串的数值的数据帧子集

R 基于变量内字符串的数值的数据帧子集,r,dataframe,time-series,subset,as.date,R,Dataframe,Time Series,Subset,As.date,我有一个数据框架,它是1961年至2018年每月分辨率的气象测量时间序列。我对测量月平均温度的变量感兴趣,因为我需要夏季的多年平均温度 为此,我必须从“DateVaraible”列中筛选第五位和第六位数字,即月份。 时间列中的值的格式如下 "19610701". 所以我需要1961年后的07(朱莉) 我开始为其他目的编写一个月的代码,所以我没有尝试任何值得一提的东西。我猜.grepl可以做这项工作,但我不知道“匹配”操作符是如何工作的 所以我从这段代码开始 summersmonth<- D

我有一个数据框架,它是1961年至2018年每月分辨率的气象测量时间序列。我对测量月平均温度的变量感兴趣,因为我需要夏季的多年平均温度

为此,我必须从“DateVaraible”列中筛选第五位和第六位数字,即月份。 时间列中的值的格式如下 "19610701". 所以我需要1961年后的07(朱莉)

我开始为其他目的编写一个月的代码,所以我没有尝试任何值得一提的东西。我猜.grepl可以做这项工作,但我不知道“匹配”操作符是如何工作的

所以我从这段代码开始

summersmonth<- Df[DateVariable %like% "19610101" I DateVariable %like% "19610201"]
我很高兴看到这篇文章写得整洁

更新2-解决方案

这里是整洁的道路,就像这里一样


Veg_Seas您可以将日期变量转换为日期(格式)并取月份:

allmonths <- month(as.Date(Df$DateVariable, format="%Y%m%d"))
然后,您可以检查是否为夏季月份:

summersmonth <- Df[allmonths %in% 6:9, ]

我们可以使用
anydate
from
anytime
转换为
Date
类,然后提取
month

library(anytime)
month(anydate(as.character(Df$DateVariable)))

如果
DateVariable
始终遵循格式:“yyyyymmdd”,您可以使用
substr
summermonds重新编辑,是
Mean_Temp$MESS_DATUM_BEGINN
函数对日期变量(转换为日期)的结果吗?是的,Mean_Temp$MESS_DATUM_BEGINN是函数的结果。(所有月份)我第一次尝试了你的函数,但它不起作用,因为在
月份
中缺少s,因此我在
月份
内使用了
作为.Date
,这给了我一个1961-01-01格式的结果。今天我用
months
再次尝试了你的函数。结果是一个具有月份名称的字符类。现在我想知道如何将它们子集为char。或者num.valueHi,我尝试了代码的第一行(转换为as.Date),我得到了这样一条消息:“as.Date.numeric中的错误(Mean_Temp$MESS_DATUM_begin,format=“%Y%m%d”):“origin”必须提供。“@m_rub请给出
dput(head(Mean_Temp$MESS_DATUM_begin))的结果)
:如果没有进一步的详细信息,很难知道错误的原因。很可能您处理的是
因素
,而不是
字符
,然后使用
allmonths@m_rub传递同一行,您可能有数值。转换为
字符
,然后重试。我更新了postTrue,因为我在这里发现:谢谢!您好,我感谢您的帮助,我很愿意给您评分,但我最初的问题更多的是如何筛选/子集某个月,而不是如何更改格式。我想改变格式可能是解决问题的第一步,但问题本身仍然没有解决。
allmonths <- month(as.Date(Df$DateVariable, format="%Y%m%d"))
allmonths <- month(as.Date(as.character(Df$DateVariable), format="%Y%m%d"))
summersmonth <- Df[allmonths %in% 6:9, ]
as.Date("20190702", format="%Y%m%d")
[1] "2019-07-02"

month(as.Date("20190702", format="%Y%m%d"))
[1] 7
library(anytime)
month(anydate(as.character(Df$DateVariable)))