由于.Date返回N/A,字符串为%d/%m/%Y,&区域设置解决方案不会更改R中的输出

由于.Date返回N/A,字符串为%d/%m/%Y,&区域设置解决方案不会更改R中的输出,r,R,使用read.csv导入Quicken for Mac csv导出文件,以在R中生成数据帧: > str(datQ) 'data.frame': 443 obs. of 4 variables: $ V2: chr "IBM" "IBM" "IBM" "IBM" ... $ V6: chr "1" "1" "4" "1" ... $ V7: chr "184.42" "187.04" "660.56" "178.44" ... $ V1: chr "7/10/2009" "7

使用read.csv导入Quicken for Mac csv导出文件,以在R中生成数据帧:

> str(datQ)
'data.frame':   443 obs. of  4 variables:
$ V2: chr  "IBM" "IBM" "IBM" "IBM" ...
$ V6: chr  "1" "1" "4" "1" ...
$ V7: chr  "184.42" "187.04" "660.56" "178.44" ...
$ V1: chr  "7/10/2009" "7/13/2009" "7/30/2009" "8/18/2009" ...
运行as.Date like so返回NA向量

> as.Date(datQ$V1, format = "%m/%d/%Y")
[1] NA NA NA ...
手动创建的DF起作用,因此错误特定于datQ DF:

> df <- data.frame(date = "7/10/2009")
> as.Date(df$date, format= "%m/%d/%Y")
[1] "2009-07-10"
所以问题是,为什么导入的CSV数据会像现在这样失败?我已经在datQ数据帧上运行了trimws来清除前导/尾随空格等

有什么想法吗

编辑:根据请求添加有关问题datQ df的更多数据

> dput(head(datQ))
structure(list(V2 = c("IBM", "IBM", "IBM", "IBM", "IBM", 
"IBM"), V6 = c("10", "10", "40", "10", "1", "1"), V7 = c("184.42", 
"187.04", "660.56", "178.44", "221.40", "218.41"), V1 = c("7/10/2009", 
"7/13/2009", "7/30/2009", "8/18/2009", "9/22/2008", 
"9/23/2008")), row.names = c("6", "7", "8", "9", "11", "12"
), class = "data.frame")
编辑:这样评论员就可以在我的dput输出上获得as.Date。我查看了headdatQ,然后将屏幕上的输出复制到控制台。就在日期值之前,RStudio显示一个带句点的粉红色框。有人见过这样的东西吗


在@MarcusNunes帮助下,我发现Quicken for Mac CSV导出文件中日期值的开头有一个不可打印、不可见、非UTF8字符。在数据上运行trimws并没有删除此垃圾字符。将数据从RStudio复制并粘贴回RStudio控制台时,我看到了一个奇怪的粉红色框,其中有一个句号,正好在日期之前。这让我意识到类似这样的事情可能是导致问题的原因。对我的示例DF执行相同的操作并没有显示粉色框。请参阅此URL以了解我在何处获取参考代码:

此代码在我的机器上工作:

> as.Date(datQ[1, 4], format = "%m/%d/%Y")
[1] NA
> as.Date(gsub("[^[:alnum:][:blank:]?&/\\-]", "", datQ[1, 4]), format = "%m/%d/%Y")
[1] "2009-07-10"

你能和我们分享一下你的数据吗?使用dputheadatq输出编辑您的问题。是的,这有点奇怪,但您将共享数据帧的前六行,这正是R读取它们的方式。@MarcusNunes添加供您参考我尝试运行与您使用的相同的命令,我得到了预期的结果:as.DatedatQ$V1,格式=%m/%d/%Y为我提供了2009-07-10 2009-07-13 2009-07-30 2009-08-18 2008-09-22 2008-09-23。@MarcusNunes谢谢。我想我正在处理一个不可打印的字符或数据中的一些其他垃圾。我将用更多的观察来更新这个问题。我已经用谷歌搜索了我看到的东西,但到目前为止还没有什么乐趣。太好了。我很高兴我帮助了你。
> as.Date(datQ[1, 4], format = "%m/%d/%Y")
[1] NA
> as.Date(gsub("[^[:alnum:][:blank:]?&/\\-]", "", datQ[1, 4]), format = "%m/%d/%Y")
[1] "2009-07-10"