Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 如何将两个串联字符串变量转换为%m%Y格式_R_Date_As.date - Fatal编程技术网

R 如何将两个串联字符串变量转换为%m%Y格式

R 如何将两个串联字符串变量转换为%m%Y格式,r,date,as.date,R,Date,As.date,我创建了一个名为long.oto.yeni$Date的字符变量。现在我需要将此变量转换为%m/%Y格式,以便在ggplot2中绘制时间序列图。因此,我无法使用zoo包中的yearmon()函数 但当我使用as.Date()函数时,输出创建了NA值。我怎样才能克服这个问题 谢谢 long.oto.yeni$Date <- paste0(long.oto.yeni$Month, "/", long.oto.yeni$Year) long.oto.yeni$Date <- as.Date(

我创建了一个名为
long.oto.yeni$Date
的字符变量。现在我需要将此变量转换为
%m/%Y
格式,以便在
ggplot2
中绘制时间序列图。因此,我无法使用
zoo
包中的
yearmon()
函数

但当我使用
as.Date()
函数时,输出创建了
NA
值。我怎样才能克服这个问题

谢谢

long.oto.yeni$Date <- paste0(long.oto.yeni$Month, "/", long.oto.yeni$Year)
long.oto.yeni$Date <- as.Date(long.oto.yeni$Date, "%m/%Y")

long.oto.yeni$Date除了月份和年份之外,您还需要一个日期组件来使用
as.Date
形成日期。您可以任意选择每个日期的月初:

long.oto.yeni$Date <- as.Date(paste0("01-",
                              long.oto.yeni$Month, "-",
                              long.oto.yeni$Year), "%d-%m-%Y")

long.oto.yeni$Date除了月份和年份之外,您还需要一个日期组件来使用
as.Date
形成日期。您可以任意选择每个日期的月初:

long.oto.yeni$Date <- as.Date(paste0("01-",
                              long.oto.yeni$Month, "-",
                              long.oto.yeni$Year), "%d-%m-%Y")

long.oto.yeni$Date出于完整性考虑,这是一个小注释:您也可以使用
zoo
包,但是您需要将
as.yearmon()
as.Date()
组合在一起,如下所示

long.oto.yeni$Date <- paste0(long.oto.yeni$Month, "/", long.oto.yeni$Year)
long.oto.yeni$Date <- as.Date(as.yearmon(long.oto.yeni$Date, "%m/%Y"))

请注意,在这两种方法中,您都将获得每月的第一天,这意味着结果将与@Tim Biegeleisen的答案中的结果相同。为了完整起见,您可以使用
zoo
包,但您需要将
作为.yearmon()
作为.Date()的组合
像这样

long.oto.yeni$Date <- paste0(long.oto.yeni$Month, "/", long.oto.yeni$Year)
long.oto.yeni$Date <- as.Date(as.yearmon(long.oto.yeni$Date, "%m/%Y"))
请注意,在这两种方法中,您都将获得月的第一天,这意味着结果将与@Tim Biegeleisen的答案相同,我们可以使用
“yearmon”
类来避免处理月的第一天。将
long.oto.yeni
读入动物园对象
oto
将其索引转换为类
“yearmon”
。然后用
autoplot.zoo
绘图

library(zoo)
library(ggplot2)

long.oto.yeni <- data.frame(Month = 1:5, Year = 2000, y = (1:5)^2) # input

to_yearmon <- function(y, m) as.yearmon(paste(y, m, sep = "-"))
oto <- read.zoo(long.oto.yeni, index = c("Year", "Month"), FUN = to_yearmon)

autoplot(oto) + scale_x_yearmon() + xlab("")
图书馆(动物园)
图书馆(GG2)
long.oto.yeni我们可以使用
“yearmon”
类来避免处理月份中的某一天。将
long.oto.yeni
读入动物园对象
oto
将其索引转换为类
“yearmon”
。然后用
autoplot.zoo
绘图

library(zoo)
library(ggplot2)

long.oto.yeni <- data.frame(Month = 1:5, Year = 2000, y = (1:5)^2) # input

to_yearmon <- function(y, m) as.yearmon(paste(y, m, sep = "-"))
oto <- read.zoo(long.oto.yeni, index = c("Year", "Month"), FUN = to_yearmon)

autoplot(oto) + scale_x_yearmon() + xlab("")
图书馆(动物园)
图书馆(GG2)

long.oto.yeni“将此变量转换为%m/%Y格式”,是指转换为
POSIXct
还是
Date
类?R中没有类引用月份,它们都引用日期或时间。因此,您还需要提供一天的时间。(我认为Tim的答案可能会对您有所帮助,尽管没有样本数据,很难提供具体的帮助。)“将此变量转换为%m/%Y格式”,您的意思是转换为
POSIXct
还是
Date
类?R中没有类引用月份,它们都引用日期或时间。因此,您还需要提供一天的时间。(我认为Tim的答案可能会帮助你,尽管没有样本数据,提供具体帮助是相当困难的。)好答案强调我们通常需要
日期
类型,但你在粘贴中使用
-
,而
/
格式可能需要清理。@Dirkeddebuettel不是may,肯定是一个打字错误。总是有助于测试代码,但也不能总是在这里测试所有内容。只需使用我的anytime软件包中的anydate()函数:)这是一个很好的答案,强调我们通常需要
-Date
类型,但您在粘贴中使用
-
,在可能需要清理的格式中使用
/
。@DirkedBuettel不可能,肯定是打字错误。总是有助于测试代码,但也不能总是在这里测试所有内容。只需使用我的anytime包中的anydate()函数:)