У меня есть продольный набор данных, в котором людям исполняется 40 лет в разные годы, и мне нужно провести анализ (сопоставление показателей склонности) с 40-летними. Я хочу создать переменную дохода, которая будет использовать Income 1992
для людей, которым исполнится сорок в 1998 году, использует Income 1994
для людей, которым исполнится сорок в 2000 году, и так далее.
Мои данные выглядят так (и я хочу, чтобы Incomenew выглядел так):
ID | SourceYear| Income1992| Income1994 | Incomenew |
|---------------|------------|------------| |
| 1 | 1998 | 10000 | 12000 | 10000 |
| 2 | 2000 | 20000 | 15000 | 15000 |
| 3 | 1998 | 17000 | 16000 | 17000 |
| 4 | 2000 | 18000 | 20000 | 20000 |
Меня интересует их доход за 6 лет до того, как им исполнится 40. Я уже скорректировал все переменные дохода на покупательную способность определенного года. Я попробовал это:
Incomenew<-NA
Incomenew[SourceYear=="1998"]<-Income1992[SourceYear=="1998"]
Incomenew[SourceYear=="2000"]<-Income1994[SourceYear=="2000"]
Я получаю все NA
Я также пробовал это:
`Incomenew<-if (SourceYear=="1998")] {Income1992}
else if (SourceYear==2000)
{Income1994}`
Я получаю следующую ошибку
Ошибка в if (SourceYear== "1998") { : аргумент имеет нулевую длину
Было бы очень полезно, если бы кто-то мог помочь с этим, я был бы очень признателен.
Incomenew
имеет только длину 1, тогда как SourceYear может иметь другую длину. ПопробуйтеIncomenew <- rep(NA, length(SourceYear))
- person akrun   schedule 15.03.2016SourceYear
не сохранен как объект, полезный для подмножества вещей (я не могу сказать без данных), он, вероятно, должен иметь префикс набора данных:Income1992[Income1992$SourceYear == 1998,]
. Обратите внимание, что вам также нужно поставить запятую после нее, чтобы указать, что вы подмножаете годы и хотите, чтобы все столбцы и выясняли, являются ли ваши годы строками ("1998"
) или числами (2000
). - person alistaire   schedule 15.03.2016