2015-08-05 2 views
-3

Я новичок в использовании библиотеки GoogleVis в R, и у меня есть CSV-файл, который я преобразовал в data.frame, потому что мне необходимо передать data.frame в gvisTimeline. Не могли бы вы рассказать мне, как мне исправить параметр?using gvisTimeline в R

prob <- read.csv("_slash_probability.csv", header = TRUE, sep = ",") 
plot(gvisTimeline(prob, barlabel="timestamp", rowlabel="fruit", 
        options=list(width=600, height=350)) 
) 

Вот ошибки я получаю:

Invalid data table format: must have 3 or 4 data columns.× 

enter image description here

Вот как мой файл CSV выглядит следующим образом:

rosbagTimestamp,data 
1438293895271171569,blueberry 0.0939634317574; 
1438293895303195547,blueberry 0.0846330225841; 
1438293895304291013,blueberry 0.0828378077875; 
1438293895337791976,blueberry 0.0797700384253; 
1438293895401420350,blueberry 0.0759388571186; 
1438293895472735323,blueberry 0.0750429342259; 
1438293895476007383,blueberry 0.0750213831086; 
1438293895507707571,blueberry 0.075791014733; 
1438293895573689503,blueberry 0.0776209483645; 
1438293895637463777,blueberry 0.0834959971174; 
1438293895641481231,blueberry 0.0879266074843; 
1438293895656845822,blueberry 0.0904240066394; 
1438293895771521924,blueberry 0.0883910759335;apple 0.0826913130923; 
1438293895841645544,blueberry 0.0883910759335;apple 0.0774326788207; 
1438293896011836483,strawberry 0.0793898589924;blueberry 0.0883910759335;apple 0.0882327474566; 

Say, как в последнем он говорит, что вероятность того, что робот увидит каждый из плодов.

UPDATE: Я использовал этот код:

prob <- read.csv("_slash_signal.csv", header = TRUE, sep = ",") 
plot(gvisTimeline(prob, barlabel="rosbagTimestamp", rowlabel="data", 
        options=list(width=600, height=350)) 
) 

для этого CSV:

rosbagTimestamp,data 
1438293888221082923,anticipation 
1438293894686284247,start 
1438293912206205027,reset 
1438293951208942248,reset 
1438293971527805563,reset 

я получаю ту же ошибку еще.

+2

'prob' только имеет 2 колонки, поскольку существует только один,' в каждой строке. Я бы подумал, что ошибка довольно понятна. – thelatemail

+0

Извините, то, что очевидно для вас, не очевидно для меня. Кроме этого, я бы не разместил его здесь. Кроме того, я не уверен, как я могу использовать 1438293895271171569 для того, чтобы сказать конец или начало, потому что это не формат даты. Невозможно выполнить временную шкалу, если в моем CSV-файле есть только два столбца? или вы можете сказать мне, как я могу использовать временную шкалу в этом примере? –

+1

Вы должны соответствовать вашим данным в нужном формате. В вашем коде есть 'rowlabel =" fruit "и' barlabel = "timestamp" ', но ни один из этих столбцов не находится в вашем файле csv. У вашего файла csv также есть разделители двоеточия и пробела вместо запятых, и его необходимо изменить, чтобы быть похожим на «метка, имя, начало, конец» или «метка», «начало» и «конец» в соответствии с примерами, представленными в пакете R: https: //cran.r-project.org/web/packages/googleVis/vignettes/googleVis_examples.html Что касается метки времени, откуда она взялась? Вы находитесь в лучшем положении, чтобы знать, что он представляет. – thelatemail

ответ

3

это похоже на работу

library('googleVis') 

dd <- read.csv(header = TRUE, text = "rosbagTimestamp,data 
1438293888221082923,anticipation 
1438293894686284247,start 
1438293912206205027,reset 
1438293951208942248,reset 
1438293971527805563,reset") 

dd <- within(dd, { 
    end <- as.POSIXct(as.numeric(substr(rosbagTimestamp, 1, 10)), 
        origin = '1970-01-01') 
    start <- as.POSIXct(as.numeric(substr(rosbagTimestamp, 11, 19)), 
         origin = '1970-01-01') 
    rosbagTimestamp <- NULL 
}) 

#   data    start     end 
# 1 anticipation 1977-01-02 14:54:40 2015-07-30 18:04:48 
# 2  start 1991-09-30 22:31:28 2015-07-30 18:04:54 
# 3  reset 1976-07-14 11:08:48 2015-07-30 18:05:12 
# 4  reset 1976-08-15 03:32:16 2015-07-30 18:05:51 
# 5  reset 1986-09-22 16:37:20 2015-07-30 18:06:11 


plot(gvisTimeline(dd, rowlabel = 'data', barlabel = 'data', 
        start = 'start', end = 'end')) 

enter image description here

+0

Я вижу, что у вас есть годы по оси x. Похоже, мы не можем использовать такие вещи, как 1/1000 секунды или меньше? Вы видели комментарии, приведенные выше, по поводу использования as.POSIXct (1438293895, origin = "1970-01-01")? Интересно, может ли в нашем конкретном случае время, которое мы собираем предсказания поведения робота, можно использовать для визуализации на графике Google? –

+0

см., Когда я запускаю код, он говорит, как определенный элемент, например, ожидание занимает 38 лет, 6 месяцев, 28 дней. В любом случае, мы можем показать реальное время, которое потребовалось? –

+0

Также не могли бы вы дать мне подсказку, как бы вы могли иметь разные имена по оси y? потому что, когда я запускал другой (похожие имена csv и одинаковые столбцы), я получил этот результат: http://i.imgur.com/8lLg5l7.png (предметы - банан, клубника, голубика и киви) –