У меня есть данные и есть столбец с именем Date
, я ввожу данные в R.
Вот мои данные:
unique(data$Date)
[1] "" "2016/12/20" "2016/12/27" "2017/1/7" "2017/1/27" "2017/2/1" "2017/2/2" "2017/2/5" "2017/2/6" "2017/2/7"
[11] "2017/2/8" "2017/2/10" "2017/2/11" "2017/2/13" "2017/2/14" "2017/2/15" "2017/2/17" "2017/2/16" "2017/2/24" "2017/2/19"
[21] "2017/2/21" "2017/2/20" "2017/2/26" "2017/2/22" "2017/3/2" "2017/2/25" "2017/2/28" "2017/3/1" "2017/3/4" "2017/3/5"
[31] "2017/3/6" "2017/3/10" "2017/3/8" "2017/3/9" "2017/3/11" "2017/3/12" "2017/3/13" "2017/3/15" "2017/3/29" "2017/5/13"
[41] "2015/10/5" "2016/2/22" "2015/3/6" "2015/3/7" "2015/10/15" "2015/3/9" "2016/1/30" "2015/10/29" "2015/10/24" "2015/10/17"
[51] "2016/1/8" "2015/9/24" "2016/2/15" "2015/12/8" "2015/12/10" "2016/2/6" "2015/11/29" "2016/1/23" "2015/10/11" "2016/2/16"
[61] "2015/9/28" "2016/1/29" "2015/11/27" "2015/10/12" "2015/11/1" "2015/11/16" "2015/10/10" "2015/11/30" "2016/1/2" "2016/1/21"
[71] "2016/4/22" "2015/10/21" "2015/11/12" "2015/12/28" "2015/12/30" "2015/11/6" "2015/10/8" "2015/12/6" "2016/1/24" "2016/1/17"
[81] "2016/2/26" "2016/3/6" "2016/2/17" "2016/1/11" "2015/12/3" "2016/2/11" "2015/11/22" "2015/10/2" "2015/10/3" "2015/11/4"
[91] "2016/2/10" "2015/12/9" "2015/10/9" "2015/12/1" "2016/2/25" "2016/1/19" "2016/1/18" "2015/12/13" "2016/2/14" "2016/3/10"
class(data$Date)
[1] "character"
Я меняю этот формат character
на date
с помощью as.Date()
:
data$Date <- as.Date(data$Date)
Error in charToDate(x) :
character string is not in a standard unambiguous format
Я не знаю, как понять. Думаю проблема ""
в данных. У меня также есть другой столбец с именем Date2
, но в этом столбце нет ""
.
Есть предложения?
Кроме того, если я хочу сделать as.Date
с двумя столбцами одновременно и определить указанный формат, например `as.Date(x, "%Y/%m/%d"), как мне это сделать?
data[,c("Date", "Date2") := lapply(.SD, as.Date), .SDcols = c("Date", "Date2")]
as.Date(x, "%Y/%m/%d")
- person Ronak Shah   schedule 21.07.2017as.Date("2017/01/01")
возвращает правильную дату. Может быть, важна точность цифр? - person Ronak Shah   schedule 21.07.2017"%Y/%m/%d"
. - person Peter Chen   schedule 21.07.2017""
— сравнитеas.Date(c("","2015/10/5"))
иas.Date(c("2015/10/5"))
. К сожалению, R не умеет читать мысли (пока). - person thelatemail   schedule 21.07.2017as.Date("2017/1/1")
безformat
, но это потому, что у вас есть одно пустое значение в начале, поэтому важно упомянуть формат. - person Ronak Shah   schedule 21.07.2017""
наNA
, а затем изменить формат наdate
? Это возможно? - person Peter Chen   schedule 21.07.2017as.Date
проверяет первый элемент, чтобы «угадать» формат, а затем применяет его к каждому последующему? Потому чтоas.Date(c("2015/10/5", ""))
в порядке. Но если первый —""
, то у него проблемы? - person SymbolixAU   schedule 21.07.2017as.Date.character
в консоли и проверите код. Кажется, он делает то, о чем вы догадываетесь. - person thelatemail   schedule 21.07.2017data[,
:=(Date = as.Date(Date), Date2 = as.Date(Date2))]
(с обратными галочками вокруг:=
) - person SymbolixAU   schedule 21.07.2017"%Y/%m/%d"
? - person SymbolixAU   schedule 21.07.2017