332 개의 파일 디렉토리를 통과하는 함수를 작성하려고합니다. 각 파일에는 대기 오염 값의 데이터 프레임이 들어 있습니다. 두 개의 기둥은 질산염과 황산염입니다.R 3.1.1의 파일을 루핑하는 동안 벡터에 cor() 값을 추가하십시오.
각 파일을 검토 할 때 전체 사례에 대한 임계 값 기준을 충족하는지 확인해야합니다. 기본적으로 코드는 N/A 또는 누락 된 값이있는 행을 생략해야합니다. 만약 그들이 기준을 충족한다면, 나는 cor()
함수를 사용하여 질산염과 황산염 간의 상관 관계를 계산해야 할 것입니다.
이
내 의사입니다 : 내가 수동이를 작성할 때corr <- function(directory, threshold = 0){
setwd(paste("C:/...", directory, sep = "/"))
# Writing from here on works fine
correlations <- numeric()
files <- list.files(getwd(), full.names = TRUE)
for (i in 1:332) {
read_file <- read.csv(file[i])
complete_observation <- read_file[complete.cases(read_file), ]
get number_complte using nrow
if (number_complete >= threshold) {
attach(complete_data)
correlations <- c(correlations, cor(sulfate, nitrate))
detach(complete_data)
}
}
(주석부터 시작), 그것을 잘 작동하고 나는 특정의 상관 벡터이다 내가 찾고 있어요 결과를 얻을 길이.
그러나 내가 만든 함수 (코드의 시작 부분부터)를 호출하여 시도하면 NULL 벡터가 생깁니다. 나는 cor 데이터를 추가 한 후 반환 값 (상관 관계)을 중첩 할 때 조건을 충족시키고 끝에 저장하는 상관 값을 계산한다는 것을 나타내는 단일 값을 리턴했지만 루프를 빠져 나오면 012로 다시 초기화됩니다.
이렇게하면 수동으로 입력 할 때 이런 식으로 작동하지 않았기 때문에 이것은 당황합니다.이 동작은 함수를 실행할 때만 발생합니다. 두 경우 모두 함수의 동작에는 차이가 없어야합니다. 이 문제를 어떻게 해결할 수 있습니까?
에 오신 것을 환영합니다 SO에 대해 기본적으로 각 한 후, 두 번째 닫는 대괄호 후 return 문을 배치하여에 내가 원하는 방식으로 작동하는 내 기능을 얻을 수있었습니다! 작성한 코드를 업로드 할 수 있습니까? 코드와 샘플 데이터를 제공하면 누군가로부터 도움을받을 수 있습니다. – jazzurro
@jazzuro 감사합니다. 수정으로 추가해야합니까? 내가 코멘트로 추가하려고했지만 제대로 포맷 할 수 없었어요. – Astro