小编use*_*170的帖子

guess_formats + R + lubridate

我无法理解如何在lubridate中使用guess_formats函数.我有一些日期的矢量以一些未知的格式/顺序排列.我想将它们转换为Date对象(或至少转换为尽可能多的对象).以下代码是我尝试过的:

library(lubridate)
sampleDates <- c("4/6/2004","4/6/2004","4/6/2004","4/7/2004",
        "4/6/2004","4/7/2004","2014-06-28","2014-06-30","2014-07-12",
        "2014-07-29","2014-07-29","2014-08-12")
formats <- guess_formats(sampleDates, c("Ymd", "mdY"))
dates <- as.Date(sampleDates, format=formats)
Run Code Online (Sandbox Code Playgroud)

这给了所有NA.

这显然只是一个简短的例子.在实际情况中,我不知道各种格式散布在哪里,我不会100%确定只有%m /%d /%Y和%Y-%m-%d.有人能让我知道A.在这个例子中如何使用guess_formats或者B.有更适合在lubridate/base R中使用的东西,希望没有很多正则表达式.谢谢!

编辑:我也尝试过parse_date_time.我不明白的是这个例子的以下工作:

parse_date_time(sampleDates,
            orders = c("Ymd", "mdY"),
            locale = "eng")
Run Code Online (Sandbox Code Playgroud)

但这不是:

parse_date_time(sampleDates,
            orders = c("mdY", "Ydm"),
            locale = "eng")
Run Code Online (Sandbox Code Playgroud)

在我的实际数据集中,我不知道格式的顺序,这似乎对此函数很重要.

双重编辑:Dur,好的,我看到我在第一个parse_date_time示例中有Ymd而在第二个中有Ydm ...继续.

r lubridate

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

R + download.file警告对我没有意义

我不明白警告信息:

警告消息:在download.file中(url,temp,quiet = TRUE,mode ="wb"):已下载长度2533!=报告长度2533

如果数字不同,我可以理解.重现的代码:

url <- "http://www.waterqualitydata.us/Result/search?siteid=USGS-01594440&pCode=01075&countrycode=US&mimeType=tsv&zip=yes"
temp <- tempfile()
download.file(url,temp, quiet=TRUE, mode='wb')
doc <- unzip(temp)
unlink(temp)
retval <- read.delim(doc , header = TRUE, quote="\"", 
                  dec=".", sep='\t', 
                  fill = TRUE)
Run Code Online (Sandbox Code Playgroud)

我可以压制警告,但我想确保我也没有做错任何事.谢谢!

编辑:添加read.delim部分以获取数据帧.我的平台是x86_64-w64-mingw32/x64(64位),R版本3.1.2(2014-10-31).

r

7
推荐指数
1
解决办法
254
查看次数

标签 统计

r ×2

lubridate ×1