我是R语言的新手。我已成功将查询的结果集加载到变量中。现在我想按列名和行号访问结果集数据。我需要验证它是否为Null(在结果中显示为< NA>)然后通过bat文件用PHP发送邮件。我的示例代码如下。
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")
}
但我认为我使用了错误的语法。请帮忙,因为我无法获得进行这些比较的正确语法。
答案 0 :(得分: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与字符串比较不同 - 您需要is.null()
或is.na()
,因为这可能会被ODBC访问转换。