2015-01-25 3 views
3

У меня есть dataframe из 5 наблюдений из 15 переменных. Некоторые из классов являются символами, некоторые числовые, некоторые целые. Я пытаюсь добавить новую строку в свой фрейм данных. Я сделал это, создав новую строку:Как добавить строку в dataframe без изменения классов col?

newrow= c('Chiyoda',600,.08,2,1500,1,3000,6500,10, .65, .1, 0,0,0,0) 

, а затем rbinding его на мой кадр данных:

mydata = rbind(mydata,newrow) 

проблема заключается в том, что когда я делаю rbind он изменяет классы каждого столбца в моем кадр данных к символу, и я не могу выполнять операции над ними так, как мог, когда они были числовыми. Есть ли способ сделать это, что не связано с выписыванием класса каждого элемента?

Благодаря

+4

использовать 'newrow <- list (...)' вместо этого, поскольку вы не можете смешивать типы в векторах – rawr

ответ

7

вам нужно определить newrow так:

newrow= list('Chiyoda',600,.08,2,1500,1,3000,6500,10, .65, .1, 0,0,0,0) 

, потому что, когда вы конкатенации числовые и символьные переменные вместе с помощью c(), R будет принуждать числовые переменные для символа и возвращает вектор символов.

+0

Большое спасибо! –

Смежные вопросы