質問編集履歴
1
タイトル修正、コードの修正、エラーメッセージの修正、環境に利用パッケージを追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【R】パネルデータ
|
1
|
+
【R】パネルデータで複雑な条件分岐がある変数作成コードを組みたい
|
test
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# 前提と実現したいこと
|
2
2
|
|
3
|
+
パネルデータで変数を作るコードを組んでいます。条件分岐が複雑で、上手くいきません。
|
4
|
+
|
5
|
+
|
6
|
+
|
3
7
|
## 前提:データセット
|
4
8
|
|
5
9
|
以下のように、4カ国(米日仏独)の2001年から2010年までのデータがあるとします。
|
@@ -284,19 +288,19 @@
|
|
284
288
|
|
285
289
|
subdata <- subset(data, country==key_country) # 国別にサブデータセットを作成
|
286
290
|
|
287
|
-
subdata[nrow(subdata), "gov_at_to"] <- ifelse(subdata[nrow(subdata), "to
|
291
|
+
subdata[nrow(subdata), "gov_at_to"] <- ifelse(subdata[nrow(subdata), "tunover"] == 1, 0, NA)
|
288
292
|
|
289
293
|
for(i in (nrow(subdata)-1):1){
|
290
294
|
|
291
|
-
if (subdata[i, "to
|
295
|
+
if (subdata[i, "tunover"] == 0){
|
292
296
|
|
293
297
|
subdata[i, "gov_at_to"] <- subdata[i+1, "govt_at_to"]
|
294
298
|
|
295
|
-
} else if (subdata[i, "to
|
299
|
+
} else if (subdata[i, "tunover"] == 1 & subdata[i, "left"] == 0){
|
296
300
|
|
297
301
|
subdata[i, "gov_at_to"] <- 0
|
298
302
|
|
299
|
-
} else if (subdata[i, "to
|
303
|
+
} else if (subdata[i, "tunover"] == 1 & subdata[i, "left"] == 1){
|
300
304
|
|
301
305
|
subdata[i, "gov_at_to"] <- 1
|
302
306
|
|
@@ -324,13 +328,15 @@
|
|
324
328
|
|
325
329
|
しかしながら、`for`文の実行で
|
326
330
|
|
327
|
-
>
|
331
|
+
> if (subdata[i, "turnover"] == 0) { でエラー:
|
332
|
+
|
333
|
+
TRUE/FALSE が必要なところが欠損値です
|
328
334
|
|
329
335
|
|
330
336
|
|
331
337
|
というエラーメッセージが出てしまいます。
|
332
338
|
|
333
|
-
|
339
|
+
おそらく条件分岐の設定がうまくいっていないためこのような形になっていると考えられるのですが、解決策を教えていただけましたら幸いです。
|
334
340
|
|
335
341
|
|
336
342
|
|
@@ -341,3 +347,53 @@
|
|
341
347
|
R version 4.0.3
|
342
348
|
|
343
349
|
R Studio Version 1.2.5033
|
350
|
+
|
351
|
+
動かしているパッケージはこちら
|
352
|
+
|
353
|
+
```R
|
354
|
+
|
355
|
+
library(foreign)
|
356
|
+
|
357
|
+
library(tidyverse)
|
358
|
+
|
359
|
+
library(lme4)
|
360
|
+
|
361
|
+
library(dotwhisker)
|
362
|
+
|
363
|
+
library(arm)
|
364
|
+
|
365
|
+
library(mvtnorm)
|
366
|
+
|
367
|
+
library(pastecs)
|
368
|
+
|
369
|
+
library(stargazer)
|
370
|
+
|
371
|
+
library(ggeffects)
|
372
|
+
|
373
|
+
library(lubridate)
|
374
|
+
|
375
|
+
library(ggsci)
|
376
|
+
|
377
|
+
library(plm)
|
378
|
+
|
379
|
+
library(pglm)
|
380
|
+
|
381
|
+
library(gridExtra)
|
382
|
+
|
383
|
+
library(haven)
|
384
|
+
|
385
|
+
library(countrycode)
|
386
|
+
|
387
|
+
library(magrittr)
|
388
|
+
|
389
|
+
library(survival)
|
390
|
+
|
391
|
+
library(bife)
|
392
|
+
|
393
|
+
library(survminer)
|
394
|
+
|
395
|
+
library(lmtest)
|
396
|
+
|
397
|
+
library(multiwayvcov)
|
398
|
+
|
399
|
+
```
|