Я пытаюсь преобразовать запись в формат даты и времени с помощью функции strptime
. Однако я не уверен, почему я получаю сообщение об ошибке:
количество заменяемых элементов не кратно длине замены.
Я попытался проверить длину записи с помощью функции length
, но обе имеют одинаковую длину.
data <- DT
head(data[6])
# column
# 1 2014-12-22 23:53:48
# 2 2014-12-22 23:20:34
# 3 2014-12-22 23:20:30
# 4 2014-12-22 23:20:16
# 5 2014-12-22 23:20:07
# 6 2014-12-22 23:05:49
data[,6] <- as.character(data[,6])
temp_file <- matrix(0,nrow=nrow(data))
temp_file[1] <- strptime(data[1, 6],"%F %T")
# Warning message:
# In temp_file[1] <- strptime(data[1, 6], "%F %T") :
# number of items to replace is not a multiple of replacement length
length(temp_file[1])
# [1] 1
length(data[1,6])
# [1] 1
length(strptime(data[1, 6], "%F %T") )
# [1] 1
Любая помощь приветствуется.
Спасибо!
matrix
в R, которое может получать только атомарные векторы. Когда вы пытаетесь передатьstrptime
в матрицу, это класс"POSIXlt" "POSIXt"
, поэтому он отменяет его и, таким образом, возвращает список своих атрибутов (длина которых больше 1), то естьunclass(strptime(data[1,1],"%F %T"))
. Первое значение -48
секунд. Это именно то, что у вас есть вtemp_file[1]
сейчас. - person David Arenburg   schedule 07.01.2015data.frame
вместоmatrix
, либо попробуйте преобразовать свой вектор в атомарный, например:temp_file[1] <- as.character(strptime(data[1,1],"%F %T"))
- person David Arenburg   schedule 07.01.2015