“ closure”类型的对象不可子集化

时间:2020-10-24 08:18:03

标签: r

我正在尝试编译正在运行但未编译的代码。

错误消息:从第40-42行退出(midterm.Rmd) data $ Y_i1中的错误:“关闭”类型的对象不可子集化 调用:... withCallingHandlers-> withVisible-> eval-> eval-> Mean 执行停止

CODE

c)使用问题集1中的数据集“ potential_outcomes.Rda”(此考试也在bCourses上加载),使用R计算ATE和SE($ \ hat {ATE} $)。对于后者,假设实验中将有一半单位分配给治疗组,那么ATE是参数还是估计量?SE($ \ hat {ATE} $)怎么样?

ATE <- mean(data$Y_i1) - mean(data$Y_i0)
ATE ## Average Treatment Effect
N1 <- length(data$Y_i1)
N0 <- length(data$Y_i0)
N <- 23 # Half of observations
var1 <- var(data$Y_i1)
var0 <- var(data$Y_i0)
var1N <- var1/N
var0N <- var0/N
SEATE <- sqrt(var1N + var0N)
SEATE ## The Standard Error of the ATE

ATE是一个参数,因为它描述了该框。无需估算。另一方面,ATE的SE接近于均值差的真实标准误差。

1 个答案:

答案 0 :(得分:0)

object of type 'closure' is not subsettable表示您正在尝试对函数进行子集化。如果未设置data,它将引用data包中的utils函数。

is.function(data)
#> [1] TRUE

因此,如果尝试使用$运算符,则会出现错误。

data$Species
#> Error in data$Species : object of type 'closure' is not subsettable

但是,如果将data设置为一个数据帧,它将起作用。

data <- iris

data$Species
#>  [1] setosa     setosa    
#>  [3] setosa     setosa  
#>  ...