1

人々がさまざまな年に 40 歳になる縦断データセットがあり、40 歳で分析 (傾向スコア マッチング) を行う必要があります。Income 19921998 年に 40 歳にIncome 1994なる人、2000 年に 40 歳になる人などに使用する所得変数を作成したいと考えています。

私のデータは次のようになります (そして、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     | 

彼らが 40 歳になる 6 年前の収入に興味があります。特定の年の購買力に対して、すべての収入変数を調整済みです。これを試してみました。

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") { のエラー: 引数の長さはゼロです

誰かがこれを手伝ってくれれば大変助かります。本当に感謝しています。

4

1 に答える 1

1

元のデータセットでは、SourceYear の NA がいくつかありました。このコマンドにとって重要であることに気づきませんでした。SourceYear に NA のないサブセットが使用されている場合、最初のコマンドは実際に機能します。例は次のとおりです。

ID<-c(1,2,3,4,5,6)
SourceYear<-c("1998", "2000", "1998","2002","2000", "2002", NA)
Income92<-c(100000,120000,170000,180000, 190000, NA)
Income94<-c(120000,150000,160000,20000,NA, 120000)
Income96<-c(130000, 110000,NA, 180000, 190000, 180000)
incomedata<-data.frame(ID, SourceYear,Income92, Income94, Income96, Incomenew)
summary(incomedata)
incomedata1<-subset(incomedata, !is.na(incomedata$SourceYear))
incomedata1$Incomenew<-rep(NA, length(incomedata1$SourceYear))
incomedata1$Incomenew[incomedata1$SourceYear=="1998"]<-
incomedata1$Income92[incomedata1$SourceYear=="1998"]
incomedata1$Incomenew[incomedata1$SourceYear=="2000"]<-
incomedata1$Income94[incomedata1$SourceYear=="2000"]
incomedata1$Incomenew[incomedata1$SourceYear=="2002"]<- 
incomedata1$Income96[SourceYear=="2002"]
于 2016-03-26T20:04:14.387 に答える