У меня есть Данные о ценах, индексированные в соответствии с тремя вещами:Заполнение тонны данных NA в R по индексам?
Состояние, дата и UPC (это код продукта).
У меня есть куча цен, которые являются NA.
Я пытаюсь заполнить НС следующим образом: для данной отсутствует Цена с индексом (S, D, UPC), заполните среднюю цену всех точек данных с теми же S и UPC. I.e, возьмите среднее значение по дате.
Должен быть невероятно простой способ сделать это, потому что это очень просто. Я использую для циклов, но теперь понимаю, что это невероятно неэффективно, и я хотел бы использовать функцию, например, одну в plyr или dplyr, которая сделает все это как можно меньше.
upc=c(1153801013,1153801013,1153801013,1153801013,1153801013,1153801013,2105900750,2105900750,2105900750,2105900750,2105900750,2173300001,2173300001,2173300001,2173300001)
date=c(200601,200602,200603,200604,200601,200602,200601,200602,200603,200601,200602,200603,200604,200605,200606)
price=c(26,28,NA,NA,23,24,85,84,NA,81,78,24,19,98,NA)
state=c(1,1,1,1,2,2,1,1,2,2,2,1,1,1,1)
# This is what I have:
data <- data.frame(upc,date,state,price)
# This is what I want:
price=c(26,28,27,27,23,24,85,84,79.5,81,78,24,19,98,47)
data2 <- data.frame(upc,date,state,price)
Любой совет? Благодарю.
Извините, что я новичок в этом ... Я был бы признателен, если бы вы просто сказали мне, что я сделал неправильно, а не пассивные агрессивные ссылки и большие пальцы. – ejn
@ejn - это не пассивный агрессивный, эти вопросы кратко описывают, что вам нужно, чтобы люди могли дать вам разумный ответ. Это, по сути, «правила» Stackoverflow, которые помогут нам вам помочь. – thelatemail
Я создаю фальшивый dataframe, чтобы показать вам, что я имею в виду ... Я ценю терпение, я сделаю это в моменте. – ejn