2009-12-29 3 views
0

R 언어를 처음 사용합니다. 성공적으로 쿼리의 결과 집합을 변수에로드했습니다. 이제 열 이름과 행 번호별로 결과 집합 데이터에 액세스하려고합니다. 그리고 Null인지 (결과적으로 < NA>로 표시됨) 확인한 다음 PHP로 bat 파일로 메일을 보냅니다. 내 샘플 코드는 아래와 같습니다.열과 행 번호로 DB 쿼리 결과에 액세스하는 R

library(RODBC) 
newconn = odbcConnect("db", uid="uid", pwd="pwd") 
new <- sqlQuery(newconn,"SELECT COL1, COL2 FROM TABLE1;", errors = TRUE, 1) 
if(new$COL1[3] == "<NA>"){ 
system("sendmail.bat") 
}else{ 
print ("failed") 
} 

또한 다음과 같은 문자열 결과를 비교하고 싶습니다.

if(new$COL2[10] == 'MYSTRING'){ 
print("success") 
} 

하지만 잘못된 구문을 사용하고 있습니다. 이 비교를 수행하는 올바른 구문을 얻을 수 없으므로 도와주세요.

답변

1

이 시도 :

# I'd avoid new as a variable name 
newdata <- sqlQuery(newconn,"SELECT COL1, COL2 FROM TABLE1;", errors = TRUE, 1) 

# index data frame by row number and column name 

if (newdata[3, "COL1"] == "someValue") { 
    print("found someValue") 
} else { 
    print ("failed") 
} 

는 또한 행과 열 인덱스로 인덱스

if (newdata[3, 2] == "MYSTRING") 

을 할 수 있습니다.

마지막으로 NA의 테스트는 문자열 비교와 다릅니다. ODBC 액세스로 변환 될 수 있으므로 is.null() 또는 is.na()이 필요합니다.

+0

대단히 감사합니다. is.na()는 제가 찾고 있던 곳입니다. –

관련 문제