Дата Timevar для googleVis MotionChart R

Набор данных, который я использую, показан ниже. Это CSV-файл.

 Date            Subject       val1       val2       val3
    2010-05-01        12         -0.6155     0.5083     2.6286
    2010-06-03        13          0.96416    0.785      1.41
    2010-07-01        14          0.9578     1.258      0.579
    2010-08-01        15          1.249      1.879      0.268

Я пытаюсь визуализировать данные с помощью gvisMotionchart.

Мой код: -

test_motionchart<-read.csv("data.csv")
test_motion=gvisMotionChart(test_motionchart,idvar="Subject",timevar="Date")

После выполнения этого кода я получаю сообщение об ошибке, в котором говорится

Error in testTimevar(x[[options$data$timevar]], options$data$date.format) : 
  The timevar has to be of numeric or Date format. Currently it is  factor

Любая помощь, чтобы выбраться из этого.

заранее спасибо


person stackoverflowuser    schedule 05.07.2013    source источник


Ответы (1)


Ошибка говорит вам, что именно не так:

test <- read.table(text="Date            Subject       val1       val2       val3
    2010-05-01        12         -0.6155     0.5083     2.6286
    2010-06-03        13          0.96416    0.785      1.41
    2010-07-01        14          0.9578     1.258      0.579
    2010-08-01        15          1.249      1.879      0.268",header=TRUE)

> str(test$Date)
 Factor w/ 4 levels "2010-05-01","2010-06-03",..: 1 2 3 4

Видишь Factor w/ 4 levels? Вместо этого вам нужен Date.

Пытаться:

test$Date <- as.Date(test$Date)

Теперь:

> str(test$Date)
 Date[1:4], format: "2010-05-01" "2010-06-03" "2010-07-01" "2010-08-01"

В качестве альтернативы вы можете указать, что хотите получить вывод Date для конкретной переменной при чтении в csv, используя параметр colClasses:

test <- read.csv(
filename.csv,
header=TRUE,
colClasses=c(Date="Date")
)
person thelatemail    schedule 05.07.2013
comment
когда я попробовал этот test$Date ‹- as.Date(test$Date), он выдает ошибку, говоря: «Ошибка в as.Date.default(test$Date): не знаю, как преобразовать «test$Date» в класс «Date» - person stackoverflowuser; 05.07.2013
comment
@NirojKarki - ну, я использовал данные вашего примера точно так, как опубликовано, так что это должно работать. Можете ли вы предоставить результаты dput(test$Date), чтобы убедиться, что ничего смешного не происходит? - person thelatemail; 05.07.2013
comment
результат dput(test$Date): - структура(список(test_$Date = структура(c1L, 1L, 1L, 1L,......., 1L, 2L, 2L, 2L, ..... ..2L,, .Label = c(2012-11-01, 2012-11-02, 2012-11-03, 2012-11-04, 2012-11-05, 2012-11-06, 2012-11- 07, 2012-11-08, 2012-11-09, 2012-11-10, 2012-11-11, 2012-11-12, 2012-11-13, 2012-11-14, 2012-11-15, 2012-11-16, 2012-11-18, 2012-11-20, 2012-11-21, 2012-11-22, 2012-11-23, 2012-11-24, 2012-11-25, 2012- 11-29), class = factor)), .Names = test$Date, row.names = c(NA, -480L), class = data.frame) – - person stackoverflowuser; 05.07.2013
comment
Это очень искаженная запись столбца для test$Date. Это должен быть фактор, но это кадр данных. OP должен проследить создание test data.frame и удалить любую опечатку, созданную test_$Date - person IRTFM; 05.07.2013