r-选择了未定义的列(贝叶斯分析)



我正在为贝叶斯分析复制一个R代码,但我遇到了这个错误,我试图解决它,也阅读了这里的其他问题,但仍然不起作用。我使用相同的数据集和相同的变量(来自经合组织)。有人能告诉我为什么它不起作用吗?我的代码是:

rm(list=ls())
# Name of variables to be extracted
v.resp=c("pv1math") # Response Variable
v.treat=c("IC02Q01","IC02Q02","IC02Q03") # Treatment variable(s)
# Student Confoundings
v.student.conf=c("Age", "Gender", "isced_0", "IMMIG", "HEDRES", "WEALTH", "ESCS","FAMSTRUC","hisced","hisei","HOMEPOS", "TIMEINT")
# School Confoundings
v.school.conf=c("CLSIZE","SCMATEDU","STRATIO","SMRATIO","PublicPrivate")
## LOAD DATA
dat <- read.dta("name.dta")
## Weighted sample with weights in the w vector
w=dat$W_FSTUWT

R中的子集数据

dat=dat[c(v.resp,v.treat,v.student.conf,v.school.conf)]
names(dat)[names(dat)==v.resp]="y"
w=w[complete.cases(dat)]
w=w/sum(w)
nw=function(w) w/sum(w)
dat=dat[complete.cases(dat),]
dim(dat)

当我运行线路时dat=dat[c(v.resp,v.treat,v.student.conf,v.school.conf)]我得到错误[.data.frame中的错误(dat,c(v.resp,v.treat,v.student.conf,v.school.conf)):未定义的列选择

我有25000个观测值和900个变量,但我想用21个变量和与之相关的观测值来子集我的数据(肯定少于25000)。我在)]之间加了逗号,但什么都没有,运行其他行我会丢失所有数据。

我也从"Quick-R网站"运行此代码,但再次出现相同的错误消息

# select variables v1, v2, v3
myvars <- c("v1", "v2", "v3")
newdata <- mydata[myvars] 

我想知道为什么它不起作用。我正在从一篇将这些代码用于同一数据集的论文中复制并粘贴这些代码。非常感谢。

消息指出:选择了未定义的列。这就是这里的情况:您只选择了想要的行,但忘记了告诉哪些列。使用[]进行子设置时,必须指定行和列。因此,您需要一个逗号来分隔行和列的信息。由于在行上没有选择,因此不需要在逗号后指定任何内容。但是逗号是必需的。调整后的代码:

dat=dat[c(v.resp,v.treat,v.student.conf,v.school.conf),]

唯一的区别是结束前的逗号]

最新更新