2010-07-09 3 views
2

У меня длинный список дат, которые я хочу проанализировать, они находятся в кадре данных (the_dates). Я загрузил их в R (из БД SQLite) просто отлично, однако, если я делать str(the_dates) я получаю:Непредвиденная проблема с dataframe R

'data.frame': 3968 obs. of 1 variable: 

как-то R рассматривает это как одну переменную, поэтому у меня возникли проблемы преобразования в формат даты - я нашел обходной путь:

as.Date(the_dates[1:3968,], "%B %d, %Y") 

Это работает, но, очевидно, не является оптимальным, поскольку у меня есть для поиска длины вручную (length(the_dates) возвращает 1) - любые идеи, что я делаю не так?

Спасибо!

+0

Давайте посмотрим на голову() вашего data.frame. 1 переменная (по длине) означает один столбец. Можете ли вы показать нам остальную часть команд, которые вы используете? –

ответ

4

Правильно. У вас есть только «одна переменная» (например, столбец) в вашем файле data.frame. Столбец - это «переменная», а строка - «наблюдение».

Попробуйте это:

as.Date(the_dates[,1], "%B %d, %Y") 

"Длина" из data.frame происходит от nrow, не length.

> df <- data.frame(a=1:20) 
> str(df) 
'data.frame': 20 obs. of 1 variable: 
$ a: int 1 2 3 4 5 6 7 8 9 10 ... 
> length(df) 
[1] 1 
> nrow(df) 
[1] 20 

Я рекомендую читать "An Introduction to R".

+0

Ага - спасибо Шейн - проработал шарм – malangi

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