2016-08-02 4 views
0

베이지안 분석을위한 R 코드를 복제하려고하지만이 오류를 해결하기 위해 노력했지만 여기에도 다른 질문을 읽었지만 여전히 작동하지 않습니다. 동일한 데이터 세트와 동일한 변수를 사용합니다 (OECD에서 제공). 아무도 왜 그것이 작동하지 않는지 말할 수 있습니까? 내 코드는 이것이다 : 나는 [.data.frame에 오류 오류를 가지고 라인 dat=dat[c(v.resp,v.treat,v.student.conf,v.school.conf)] (v.resp DAT, C를 (실행하면 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) 

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 

부분적인 데이터, V. 치료, v.student.conf, v.school.conf)) : 정의되지 않은 열

나는 25000 개의 관측 값과 900 개의 변수가 있지만 21 개의 변수와 관측치를 하위 집합으로하고 싶습니다. 확실히 25000). 나는 사이에 쉼표를 넣었다.)]하지만 아무것도, 다른 데이터를 모두 잃어 버린다.

는 또한 "빠른-R 웹 사이트"그러나 다시 나는 그것이 작동하지 않는 이유를 이해하고자하는 동일한 오류 메시지

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

에서이 코드를 실행합니다. 동일한 데이터 세트에 사용 된 코드에서이 코드를 복사하여 붙여 넣습니다. 감사합니다.

+1

당신은 '어떤 (C (v.resp, v.treat, v.student.conf, v.school를 실행할 수 있습니다. conf) % 이름 (dat)에 %)'? FALSE를 반환하면 열 이름이 데이터 프레임에 존재하지 않습니다. 아마도'read.dta '는 단순히 열 이름을 올바르게 전송하지 않습니다. – Vandenman

+0

감사합니다! 나는 시도했다. 그리고 나는 그 오류 메시지를 가지고 있지 않다. 관측치는 이전보다 작지만 나는 21 개가 있어야 할 때 여전히 900 개의 변수가있다. – sicecon

답변

0

메시지가 표시되었습니다. 정의되지 않은 열이 선택되었습니다. 바로 여기 상황이 있습니다. 원하는 행만 선택했으나 어떤 열을 말하는지 잊어 버렸습니다. 하위 집합에 []을 사용하는 경우 행과 열을 지정해야합니다. 따라서 행과 열에 대한 정보를 구분하려면 쉼표가 필요합니다. 행에 대한 선택이 없기 때문에 쉼표 뒤에 아무 것도 지정할 필요가 없습니다. 그러나 쉼표가 필요합니다. 조정 된 코드 :

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

의 유일한 차이점은 마감 전에 쉼표]