홈>
R에서 첫 번째 for 루프를 작성하려고합니다. 루프는 종 목록을 읽고 각 종의 AUC 및 Kappa 값을 확인한 다음 .csv 파일의 데이터를 작성해야합니다.
현재 코드의 Kappa 부분을 생략했습니다. 코드는 정상적으로 실행되지만 csv 파일로 얻는 출력은 내 목록의 마지막 종이며 해당 AUC는 15 번 반복되었습니다.
print (i)와 print (AUC)를 실행하는 대신 각 종과 해당 AUC의 목록을 얻습니다. 왜
print
를 이해하지 못합니다
그리고
write.csv
나에게 같은 결과를주지 않습니다.
setwd("Y:/HModel/Maxent/MaxentOutputs/allspp 11-28")
splist <-c( "pomatomus_saltatrix",
"stenotomus_chrysops",
"illex_illecebrosus",
"lophius_americanus",
"squalus_acanthias",
"scophthalmus_aquosus",
"paralichthys_dentatus",
"helicolenus_dactylopterus",
"merluccius_albidus",
"merluccius_bilinearis",
"urophycis_chuss",
"cynoscion_regalis",
"pollachius_virens",
"urophycis_tenuis",
"tautogolabrus_adspersus")
n = rep(NA, length(splist))
AUCandKAPPA = data.frame(sppocean=n, AUC=n, stringsAsFactors=FALSE)
for (i in splist) {
presence_csv <- paste(i,"0", "samplePredictions.csv", sep = "_")
background_csv <- paste(i, "0", "backgroundPredictions.csv", sep = "_")
presence <- read.csv(presence_csv)
background <- read.csv(background_csv)
pp <- presence$Logistic.prediction # get the column of predictions
testpp <- pp[presence$Test.or.train=="test"] # select only test points
trainpp <- pp[presence$Test.or.train=="train"] # select only test points
bb <- background$Logistic
combined <- c(testpp, bb) # combine into a single vector
label <- c(rep(1,length(testpp)),rep(0,length(bb))) # labels: 1=present, 0=random
pred <- prediction(combined, label) # labeled predictions
perf <- performance(pred, "tpr", "fpr") # True / false positives, for ROC curve
AUC <-performance(pred, "auc")@y.values[[1]] # Calculate the AUC
# fill in diagnostics
AUCandKAPPA$sppocean = i
AUCandKAPPA$AUC = AUC
print(i)
print(AUC)
# write AUC and kappa to excel file
write.csv(AUCandKAPPA, file="kappa_sp1-28.csv")
}
다음 줄을 바꾸려고했지만 오류가 발생합니다
# fill in diagnostics
AUCandKAPPA$sppocean[i] = i
AUCandKAPPA$AUC[i] = AUC
Error in `$<-.data.frame`(`*tmp*`, "sppocean", value = c("15", "pomatomus_saltatrix" :
replacement has 2 rows, data has 1
-
답변 # 1
관련 자료
- 동일한 수학 표현식 [javascript]의 두 가지 형식에서 다른 결과를 얻는 이유는 무엇입니까?
- bash - AWK를 사용하여 디렉토리 검색 및 필터링에서 두 가지 다른 결과를 인쇄합니다
- Javascript - 자바 스크립트 - api 호출에서 json으로의 결과를 반복하고 html로 인쇄
- string - 파이썬에서 길이가 다른 가능한 모든 순열을 인쇄하는 방법은 무엇입니까?
- domain name system - dig, host 및 nslookup이 다른 결과를 반환하는 이유는 무엇입니까?
- c - 사용자와 이름의 입력에 따라 다른 것을 인쇄하고 싶습니다
- java - getParcelableExtra ()로 다양한 활동에서 가치 얻기
- sql - 정확히 동일한 쿼리를 두 번 사용할 때 Athena 쿼리 결과가 다릅니다
- c# - 하나를 선택해야 할 때 두 개의 다른 datagridview 행이 선택됨
- python - 각 웹 페이지를 반복 한 후 웹 스크래핑 결과가 인쇄되지 않는 이유는 무엇입니까?
- SQL Impala에서 리드 함수를 사용하는 내 실행할 때마다 다른 결과를 얻습니다
- sccm - 사용자 계정에 따라 WMI 쿼리의 결과가 다릅니 까?
- Testing multicast - 멀티 캐스트 테스트 - 적절한 결과를 얻지 못함
- c++ - g ++ 및 clang ++는 목록 초기화에서 다른 결과를 제공합니다
- java - 동일한 캐릭터를 비교하면 다른 결과가 나타납니다
- slurm - sacct는 동일한 작업에 대해 다른 결과를보고합니다
- python - 사용자 입력을 통해 튜플에서 매번 다른 출력을 인쇄합니다
- oracle - SQL을 사용하여 두 개의 다른 테이블에서 데이터를 인쇄하지만 세 번째 테이블을 두 테이블 간의 링크로 사용
- PHP와 Javascript JWA 간의 다른 디지털 서명 결과
- c# - net core 3은 버전 22와 다른 부동 소수점 결과를 생성합니다
관련 질문
- r - URL로 csv 파일을로드하면 명백한 이유없이 두 개의 파일이 종료됩니다
- R에서 for 루프를 사용하여 데이터 프레임의 이름을 반복합니다
- r - 반복 및 추가를보다 효율적으로 만드는 방법
- r - purrr map_df는 새로운 중첩 데이터 프레임 열을 출력합니다
- dataframe - R의 sqldf는 두 개의 dataframe을 비교하고 출력을 저장합니다
- r - for 루프를 사용하여 공분산 행렬의 대각선을 업데이트하려면 어떻게해야합니까?
- for 루프에 대한 R 롤링 뺄셈 벡터화 대안
- for loop - foreach 병렬 내부에 R에서 데이터 프레임을 채우지 않음
- r - spearate 페이지에서 ggplot을 사용하여 여러 PDF 파일 (ID 당 고유)을 얻기 위해 for 루프가있는 함수를 만드는 방법
- 값이 존재하면 출력 for 루프 출력 R
변경을 시도하는 것은 올바른 방향으로 한 단계입니다. 루프가 반복 할 때마다 결과를 덮어 쓰고 있음을 알았습니다. 그러나
splist
의 문자열을 통해 루프를 제어하고 있기 때문에 , 데이터 프레임AUCandKappa
를 색인 할 수 없습니다i
를 사용하여 . 아마도 숫자 인덱스로 루프를 제어 할 수도 있습니다 :splist
의 문자에 의존하는 코드 조정i
에 배정 그것이splist
에서 추출되도록splist[i]
를 통해 .결과를 표에 할당하십시오 :