相关疑难解决方法(0)

使用as.Date格式化月份缩写

我正在处理月度数据并且具有日期的字符向量,格式为:

Sep/2012
Aug/2012
Jul/2012
Run Code Online (Sandbox Code Playgroud)

等等,回到1981年.我尝试过使用

as.Date(dates, "%b/%Y")
Run Code Online (Sandbox Code Playgroud)

where %b表示月份缩写,但这只返回NAs.我究竟做错了什么?

注意:我已经找到了一种解决方法,gsub()用于在每个条目前添加"01 /",如下所示:

01/Sep/2012
01/Aug/2012
01/Jul/2012
Run Code Online (Sandbox Code Playgroud)

然后as.Dates()工作,但这看起来有点不雅,并且无论如何都不是严格准确的.

r date gsub

10
推荐指数
1
解决办法
9111
查看次数

将一周中的几周转换为日期

我有一个数据集,包含从年初开始的周数(%W),我想将其转换为日期,以便在x轴上使用日期绘制它

dat <- structure(data.frame(week = c(22, 34, 15), year = c(2009, 2009, 2010), x = c(3.4, 5.2, 1.3)))
Run Code Online (Sandbox Code Playgroud)

我尝试根据之前的问题转换周数,但最终得到的"YYYY-10-01"是每个日期.

as.Date(paste("01", dat$week, dat$year, sep = "-"), format = "%d-%W-%Y")
Run Code Online (Sandbox Code Playgroud)

为什么这样做,怎么做对了?

r date type-conversion

8
推荐指数
1
解决办法
3482
查看次数

R中的格式日期(年 - 月)

是否可以将以下数字格式化为年 - 月I条目,如下所示:

1402 1401 1312

意思是2014年2月.2014年1月和2013年12月.

我试过了:

date <- 1402
date <- as.Date(as.character(date), format = "%y%m")
Run Code Online (Sandbox Code Playgroud)

但我得到NA作为输出.

format r date

7
推荐指数
2
解决办法
3万
查看次数

as.Date来自'YYYY.mm'格式

我有一个数据框,其中日期存储为double例如,1993.09 1993.10 1993.11 1993.12

我想将其转换为日期格式'%Y %m %d'(总是天数1).

据我所知,as.Date()想要一个字符串输入.但是,由于某些原因,当我将日期转换为字符串后sapply(dates, as.character),零点会消失,从而有效地将10月转换为1月,从而导致每年有两个Januaries.

dates
1993.07 1993.08 1993.09 1993.10 1993.11 1993.12
sapply(dates, as.character)
sub("[.]", " ", dates)
"1993 07" "1993 08" "1993 09" "1993 1"  "1993 11" "1993 12"
Run Code Online (Sandbox Code Playgroud)

是否有更直接的方式来转换日期?或者我在哪里陷入困境?

dput:

c(1993.01, 1993.02, 1993.03, 1993.04, 1993.05, 1993.06, 1993.07, 
1993.08, 1993.09, 1993.1, 1993.11, 1993.12)
Run Code Online (Sandbox Code Playgroud)

r date as.date

7
推荐指数
2
解决办法
1475
查看次数

为什么在R中使用strptime解析"%Y-%m"给出NA结果,但"%Y-%m-%d"有效?

我在R中得到的结果我不明白

如果我使用strptime格式为%Y-%m的年份和日期(如"2009-12"),我会得到NA结果.但是如果我添加一天,比如"2009-12-01",并相应地更改格式字符串,我会得到一个结果.例:

> strptime("2009-12",format="%Y-%m")
[1] NA
> strptime("2009-12-03",format="%Y-%m-%d")
[1] "2009-12-03"
Run Code Online (Sandbox Code Playgroud)

这是为什么?

更新:我很好奇的是为什么strptime不会解析一年零一个月,而且它不会这样做的原因似乎很奇怪,因为它确实解析了一年,或一年 - 和 -一天:

> strptime("2009",format="%Y") # year only. Works. Uses current month and day as defaults.
[1] "2009-12-02"
> strptime("2009-03",format="%Y-%d") # year and day. Works. Uses current month as default.
[1] "2009-12-03"
> strptime("2009-03",format="%Y-%m") # year and month. Doesn't work. ?
[1] NA
Run Code Online (Sandbox Code Playgroud)

更新解释为什么这不是重复 在这个问题之后几年问了可能的副本,它关注的是一个单独的API R:asDate函数.这个问题是关于3.1.3中仍然适用的strptime功能的怪癖R.

datetime r

5
推荐指数
1
解决办法
4244
查看次数

将日期格式化为格式"%Y-%m"时出现问题

我希望R将一列视为日期.它在导入过程中被视为因子,但是,当我尝试使用'as.Date'和'format'进行格式化时,我只会获得NAs.我不确定我哪里出错了.

> d = read.table("ByMonth.Year_54428.txt", header=T, sep=",")  
> str(d)  
'data.frame':   607 obs. of  2 variables:
 $ V1  : Factor w/ 607 levels "1950-12","1951-01",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ Rain: int  100 56000 29293 37740 19649 41436 58067 51082 49629 62680 ...
> 
> 
> Date.form1 <- as.Date(d$V1, "%Y-%m")
> str(Date.form1)
 Date[1:607], format: NA NA NA NA NA NA NA NA NA NA NA NA NA NA ...
> 
> Date.form2 = as.Date(as.character(d$V1), format="%Y-%m") …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
5900
查看次数

将月份转换为r中的日期

我需要将以下类型的字符串转换为日期格式.

Convert "Feb 2009" to 2009-02-01
Convert "Jan 2010" to 2010-01-01
Convert "Mar 2011" to 2011-03-01
Run Code Online (Sandbox Code Playgroud)

我可以使用zoo包从以下代码中实现这一点.

as.Date(as.yearmon("Feb 2009"))
Run Code Online (Sandbox Code Playgroud)

但由于一些限制,我不想使用这种转换方式.所以我想知道在R中是否还有其他方法可以完成这项任务?

datetime r date

5
推荐指数
1
解决办法
9406
查看次数

将字符字段转换为 R 中的季度日期

我有一个 tsv,其中有一个季度格式的日期字段(名为“trim”)

 trim
 1992-4
 1993-1
 ...
Run Code Online (Sandbox Code Playgroud)

当我将文件作为数据框加载时,R 将该字段作为字符导入。

我无法转换它,我只得到 NA,即使我尝试:

 df$trim <- as.Date(df$trim, format="%Y-%q")
Run Code Online (Sandbox Code Playgroud)

或加载动物园包并发送此命令:

as.yearqtr(df$trim, format="%Y-%q")
Run Code Online (Sandbox Code Playgroud)

任何的想法?

r

4
推荐指数
2
解决办法
4008
查看次数

如何按R数据框中的年份和月份排序?

我正在尝试订购一系列存储在数据框中的时间数据.格式为:

"%Y-%b"
Run Code Online (Sandbox Code Playgroud)

看起来像"2009-Sep"

到目前为止,我已设法找到此方法:

ds[order(as.Date(ds$yearmonth, format="%Y-%b")),]
Run Code Online (Sandbox Code Playgroud)

但只按年份,然后将其移动到字母顺序有关的几个月里,给我的命令2009-Jan,2009-Jul,2009-Jun等我感到十分疑惑,这不是一个简单的问题来解决.

请帮忙...

最好的卡斯帕

sorting r date

3
推荐指数
1
解决办法
7371
查看次数

如何在没有天的情况下以Ym格式转换日期

我有一个如下所示的数据向量:

dates<-c("2014-11", "2014-12", "2015-01", "2015-02", "2015-03", "2015-04")
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为可识别的日期格式,但没有运气:

as.Date(dates,"%Y-%m")
[1] NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)

我怀疑问题在于没有指定日期.

如何解决这个问题呢?

r

3
推荐指数
2
解决办法
2186
查看次数

标签 统计

r ×10

date ×6

datetime ×2

as.date ×1

format ×1

gsub ×1

sorting ×1

type-conversion ×1