質問編集履歴

1

タイトル修正、コードの修正、エラーメッセージの修正、環境に利用パッケージを追加

2021/05/07 02:47

投稿

discipulus
discipulus

スコア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.dummy"] == 1, 0, NA)
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.dummy"] == 0){
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.dummy"] == 1 & subdata[i, "left"] == 0){
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.dummy"] == 1 & subdata[i, "left"] == 1){
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
- > x[[jj]][iseq] <- vjj でエラー: replacement (置き換え) の長さが 0 です
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
+ ```