2015-05-06 2 views
5

У меня есть простой кадр данных, каккадр данных больше не кадр данных когда-то элемент удаляется

myframe<-data.frame(c(NA, NA,NA, 1,2,3,4,5,NA,7,8,9)) 

я удалить первый элемент, как так:

myframe<-myframe[-1,] 

И когда я это сделать:

is.data.frame(myframe) 

в результате я получаю:

[1] FALSE 

я могу исправить это:

myframe<-data.frame(myframe[-1,]) 

, но я думал, что кадр данных не перестанет быть кадр данных после удаления элементов

Что здесь происходит? Весь день я кодирую, и мой мозг жарится, и я не могу понять это. Пожалуйста помоги.

Моя цель - удалить только первые n входов NA в фрейме данных. Если они происходят где-то посередине, это не имеет значения.

Спасибо!

ответ

9

Поскольку у вас есть только один столбец, R автоматически преобразует результат в вектор. Если вы хотите сохранить структуру фрейма данных, вы можете ввести

myframe[-1, , drop = FALSE] 
+2

И из документации: drop: logical. Если TRUE, результат принуждается к минимально возможному размеру. Значение по умолчанию - падение, если осталось только один столбец, но не отбрасывать, если осталось только одна строка. – tospig

+0

Спасибо, ребята! Все это время я никогда не сталкивался с этим. R, y u do dis !!!! –

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