Последнее наблюдение перенесено (na.locf) на панель (сечение) Временные ряды - PullRequest
1 голос
/ 14 марта 2011

Есть ли способ использовать функции na.locf для заполнения значений NA в данных временного ряда сечения (панели).

У меня есть набор данных панели, аналогичный годам данных, настроенный аналогичноследующее:

library(zoo) #actual [r] code and data!
library(plm)
data(Produc)
a<-data.frame(Produc)
b<-subset(a,state=="WYOMING"|state=="WISCONSIN",select = state:hwy)  #limit to an easy subset)

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

b[[2,4]]<-NA
b[[17,4]]<-NA
b[[18,3]]<-NA
c<-na.locf(b,na.rm=FALSE,fromLast=FALSE)

Использование функции na.locf заполнит NA, но ничто не остановит его от неправильного извлечения данных для заполнения города за последний год данными за первый год в следующем городе. Я начинаю думать, что янеобходимо разбить информационный кадр на отдельные городские кадры.

Ответы [ 2 ]

2 голосов
/ 11 октября 2012

Опираясь на комментарий AzadA

ddply идентифицирует конкретное подмножество во фрейме данных и применяет требуемую функцию ко всем частям в этом подмножестве по уровням выбранной вами переменной (переменных).

библиотека (plyr) new.data <-a $ (переменные, к которым вы хотите применить функцию, и переменные, необходимые для порядка и подмножества) формат: ddply (data.frame, var (s) для подмножества, функция, дальнейшие команды функции) </p>

new.data <- ddply (a, $ city, na.locf) #apply na.locf по городам в векторном порядке для всех переменных </p>

a $ b <- new.data $ b # сделать это для каждой переменной, чтобы обменять новую информацию на старую </p>

Для получения дополнительной информации: http://cran.r -project.org / web / packages / plyr / plyr.pdf

0 голосов
/ 15 марта 2011

Как вы подозреваете, самый простой способ - это разделить ваш фрейм данных на отдельные фреймы данных по измерению City или Year (например, split), использовать na.locf, а затем unsplit.

В качестве альтернативы может быть проще, если вы структурируете свои данные, указав City в качестве названий строк, а Year в столбцах (или наоборот), и получите список матриц для каждого элемента данных. В этом случае вы просто используете «Применить» для прямого заполнения по соответствующему измерению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...