데이터 파일의 디렉토리와 완전한 사례에 대한 임계 값을 취하는 함수를 작성해야하고, 완전히 관찰 된 사례의 수가 (여기서 각각의 파일에서 황산염과 질산염 (두 열)) 상관 관계를 계산해야합니다. 모든 변수)가 임계 값보다 큽니다. 이 함수는 임계 값 요구 사항을 충족시키는 모니터에 대한 상관 관계 벡터를 반환해야합니다. 어떤 파일이 임계 값 요구 사항을 충족하지 않으면, 함수 길이의 숫자 벡터를 반환해야합니다 0이 함수의 프로토 타입은 내 코드는 다음과NA 열 사이의 상관 관계
corr <- function(directory,threshold=0){
a<-list.files("specdata")
for (i in a) {
data <- read.csv(paste(directory, "/", i, sep =""))
x<-complete.cases(data)
j<-sum(as.numeric(x))
sulfate<-data[,2]
nitrate<-data[,3]
b<-cor(sulfate,nitrate)
}
if (j>threshold)
return(b)
else
numeric()
}
과 같은
는 오류 messege
가 없습니다 다음 I는 ("specdata")
Z < -corr 입력하면3210 head (z) [012]
문제가 무엇인지 알 수 없습니다. 열의 NA 값이이 값과 관련이 있는지 여부는 알 수 없습니다. 내 코드에 뭔가 빠져있는 것 같아. 파일마다 하나의 데이터 프레임이 필요할 때 read.csv가 고유 한 데이터 프레임을 생성한다고 생각하지만이 경우 반환이 NA가 아닌 이유를 볼 수 없습니다 (임계 값이없는 경우). 내가 더 큰 임계 값 (1000)을 소개하면
그러나 :
z<-corr("specdata",1000)
head(z)
numeric(0)
내가 필요로 예상 출력이 문제는 아마도 최고의 두 단계로 분해 될 수
cr <- corr("specdata", 150)
head(cr)
[1] -0.01895754 -0.14051254 -0.04389737 -0.06815956 -0.12350667 -0.07588814
'황산 <- 데이터 [X 2]; 질산염 <-data [x, 3]' – Roland
자, 이제는 작동하는 것으로 보이지만 예상 된 결과는 아닙니다. 파일이 올바르게로드되지 않았을 수 있습니까? 내 CSV 파일은 001, 002, 003, ...으로 patern에 있지만 listprint 파일을 사용했기 때문에 이번에는 sprintf (% 03d)를 사용하지 않았습니다. –
루프 내부에서 b를 덮어 씁니다. –