as.Date возвращает N / A, строка -% d /% m /% Y, а решения локали не меняют вывод в R - PullRequest
0 голосов
/ 26 мая 2018

Использовал read.csv для импорта файла экспорта Quicken для 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 подобным образом возвращает вектор 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"

Я также поиграл с локалью, вот так:

> Sys.setlocale("LC_TIME")
[1] "en_US.UTF-8"
> as.Date(datQ$V1, format = "%m/%d/%Y")
  [1] NA NA NA...

Таквопрос в том, почему импортированные данные CSV терпят неудачу, как это?Я уже провел обрезку по фрейму данных datQ для очистки начальных / конечных пробелов и т. Д.

Есть идеи?

Редактировать: По запросу добавляются дополнительные данные о проблемном 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.Я посмотрел на голову (datQ), а затем скопировал вывод на экран в консоль.Прямо перед значением даты RStudio отображает поле PINK с точкой в ​​нем.Кто-нибудь видел что-то подобное?

Weird pink box in console copy paste data

1 Ответ

0 голосов
/ 26 мая 2018

С помощью @MarcusNunes я обнаружил, что в заголовке значения даты в файле экспорта Quicken для Mac CSV есть непечатаемый, невидимый, не-UTF8 символ.Выполнение обрезки данных не удаляло этот символ мусора.Копирование и вставка данных из RStudio обратно в консоль RStudio показало мне странную розовую коробку с точкой перед датой.Это подсказало мне, что что-то вроде этого может быть причиной проблемы.Делая то же самое с моим образцом DF не показывал розовую коробку.См. Этот URL-адрес, где я взял код ссылки:

https://rpubs.com/Mentors_Ubiqum/Clean_Text

Этот код работает на моем компьютере:

> 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...