우선, 나는 R 프로그래밍 과정을 처음으로 시작하는 R 초보자입니다. 스택 오버플로에 대한 훌륭한 기고 가를 통해 나 자신을 배우려고 노력하는 중 R의 기본 사항을 가르치는 데 극도로 부족합니다. 중첩 된 함수가 작동하는 방식을 알아 내려고하고 있는데, 이는 또한 어휘 범위 지정이 작동하는 방법을 배워야 함을 의미합니다. 여러 CSV 파일에서 완전한 사례를 계산하고 멋진 테이블을 즉시 출력하는 함수가 있습니다. 다음은 CSV 파일입니다 : https://d396qusza40orc.cloudfront.net/rprog%2Fdata%2Fspecdata.zip 을 그리고 여기, 내가이 적용되는 물건을 사용하는 경우는 청소기 것 내 코드 실현 있어요하지만 그대로 작동 : 지금의 서로 다른 변수를 호출하는 것을 시도하고있다중첩 함수에서 객체 호출하기 R
complete<- function(directory, id=1:332){
data<-NULL
for (i in 1:length(id)) {
data[[i]]<- c(paste(directory, "/",formatC(id[i], width=3, flag=0),".csv",sep=""))
}
cases<-NULL
for (d in 1:length(data)) {
cases[[d]]<-c(read.csv(data[d]))
}
df<-NULL
for (c in 1:length(cases)){
df[[c]]<-(data.frame(cases[c]))
}
dt<-do.call(rbind, df)
ok<-(complete.cases(dt))
finally<-as.data.frame(table(dt[ok, "ID"]), colnames=c("id", "nobs"))
colnames(finally)<-c('id', 'nobs')
return(finally)
}
이 함수는 D 뱉어 마지막 $ NOBS없이
corr<-function(directory, threshold=0){
complete(directory, id=1:332)
finally$nobs
}
CORR ('specdata')
상기 데이터 프레임은 최종적으로 그 새로운 기능 내의 상기 함수의 출력 인 ata 프레임으로해야하지만, 객체에서 변수 nobs를 호출하려고 할 때 객체가 마지막으로 발견되지 않는다고합니다. 이 문제는 렉시 컬 스코핑 주제에 대한 나의 이해 부족으로 인한 것임을 알고 있습니다. 교수는 실제로 렉시 컬 스코핑을 매우 명확하게 만들지 않았으므로 중첩 된 함수 환경 내에서 객체를 찾는 방법을 완전히 알지 못합니다. 도움이 될 것입니다.
'corr' 함수를 호출하는 코드를 게시하여 오류가 발생합니다. – MattLBeck
죄송합니다. 오류가 발생하는 코드가 있습니다. 드디어 $ nobs가 완전히 잘못된 형식 인 것을 알았습니다. 그게 도움이 필요한 것입니다 ... – user3653647