R按列和行号访问数据库查询结果

R按列和行号访问数据库查询结果,r,syntax,comparison,R,Syntax,Comparison,我不熟悉R语言。我已成功地将查询的结果集加载到变量中。现在我想按列名和行号访问resultset数据。我需要验证它是否为Null(结果中显示为),然后使用PHP通过bat文件发送邮件。我的示例代码如下 library(RODBC) newconn = odbcConnect("db", uid="uid", pwd="pwd") new <- sqlQuery(newconn,"SELECT COL1, COL2 FROM TABLE1;", errors = TRUE, 1) if(n

我不熟悉R语言。我已成功地将查询的结果集加载到变量中。现在我想按列名和行号访问resultset数据。我需要验证它是否为Null(结果中显示为),然后使用PHP通过bat文件发送邮件。我的示例代码如下

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")
}
但我认为我使用了错误的语法。请帮助我,因为我无法获得进行这些比较的正确语法

试试这个:

# 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")
}
按行和列索引进行索引

最后,NA测试不同于字符串比较——您需要
is.null()
is.NA()
,因为这可能会通过ODBC访问进行转换。

非常感谢。is.na()是我正在搜索的。
# 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")