簡體   English   中英

可變長度不同,R

[英]Variable lengths differ, R

#restricting sample
replicatedata_firststage <- replicatedata_full %>%
  filter(!is.na(belief_treatment_w3), hk_local == 1,
         followup_postjuly1st_w3 == 1, !is.na(guess_july1_2016_partust_w3pos))
replicatedata_firststage

#directional treatment indicator
belief_treatment_im <- belief_treatment_im %>%
  ifelse(replicatedata_firststage$guess_july1_2016_planust_w3 >= 17 & replicatedata_firststage$belief_treatment_w3 == 1, yes = -1)
belief_treatment_im

# Generate sample splitting indicator and interaction with controls
guess_july1_2016_above17 <- replicatedata_firststage$guess_july1_2016_planust_w3[replicatedata_firststage$guess_july1_2016_planust_w3 >= 17]
guess_july1_2016_partustXabv17 = replicatedata_firststage$guess_july1_2016_partust_w3pre * guess_july1_2016_above17
guess_july1_2016_partXabv17 <- replicatedata_firststage$guess_july1_2016_part_w3pre * guess_july1_2016_above17

#generate trimmed prior beliefs
if(!require('DescTools')) {
  install.packages('DescTools')
  library('DescTools')
}
guess_july1_2016_planust_w3_tr <- if(replicatedata_firststage$guess_july1_2016_planust_w3) { Winsorize(replicatedata_firststage$guess_july1_2016_planust_w3, minval = NULL, maxval = NULL)
}
guess_july1_2016_planust_w3_tr

#first stage regression, for HK students
reg1_1 <- lm(guess_july1_2016_partust_w3pos ~ belief_treatment_w3 + guess_july1_2016_partust_w3pre + guess_july1_2016_above17 + guess_july1_2016_partustXabv17, data = replicatedata_firststage, na.rm = TRUE)
summary(reg1_1)

它運行順利,直到 lm(),結果是:

model.frame.default 中的錯誤(公式 =guess_july1_2016_partust_w3pos 〜:可變長度不同(找到'guess_july1_2016_above17')

我該如何解決? 我試過 na.rm,na.omit(),但沒有用。

通過分配它們來將您創建的所有變量保留在數據幀中replicatedata_firststage$new_var <- my_function(replicatedata_firststage$old_var) 然后,當您調用lm()時,所有引用的變量都將來自data =參數中的數據框。 現在guess_july1_2016_planust_w3_tr變量(和其他變量)不在數據框中,所以看起來它可能是不同的長度。

#restricting sample
replicatedata_firststage <- replicatedata_full %>%
  filter(!is.na(belief_treatment_w3), hk_local == 1,
         followup_postjuly1st_w3 == 1, !is.na(guess_july1_2016_partust_w3pos))
replicatedata_firststage

#directional treatment indicator
replicatedata_firststage$belief_treatment_im <- belief_treatment_im %>%
  ifelse(replicatedata_firststage$guess_july1_2016_planust_w3 >= 17 & replicatedata_firststage$belief_treatment_w3 == 1, yes = -1)
replicatedata_firststage$belief_treatment_im

# Generate sample splitting indicator and interaction with controls
replicatedata_firststage$guess_july1_2016_above17 <- replicatedata_firststage$guess_july1_2016_planust_w3[replicatedata_firststage$guess_july1_2016_planust_w3 >= 17]
replicatedata_firststage$guess_july1_2016_partustXabv17 = replicatedata_firststage$guess_july1_2016_partust_w3pre * replicatedata_firststage$guess_july1_2016_above17
replicatedata_firststage$guess_july1_2016_partXabv17 <- replicatedata_firststage$guess_july1_2016_part_w3pre * replicatedata_firststage$guess_july1_2016_above17

#generate trimmed prior beliefs
if(!require('DescTools')) {
  install.packages('DescTools')
  library('DescTools')
}
replicatedata_firststage$guess_july1_2016_planust_w3_tr <- if(replicatedata_firststage$guess_july1_2016_planust_w3) { Winsorize(replicatedata_firststage$guess_july1_2016_planust_w3, minval = NULL, maxval = NULL)
}
replicatedata_firststage$guess_july1_2016_planust_w3_tr

#first stage regression, for HK students
reg1_1 <- lm(guess_july1_2016_partust_w3pos ~ belief_treatment_w3 + guess_july1_2016_partust_w3pre + guess_july1_2016_above17 + guess_july1_2016_partustXabv17, data = replicatedata_firststage)
summary(reg1_1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM