我需要了解如何根据条件更新R中的数据框值,然后使用对SQL Server的查询进行计算并替换数据框中的值。
例如,现在,我的数据框如下所示:
empID name description annl_salary
123 John driver 0
789 Smith temp 0
246 Joe manager 60000
因此,基本上,例如,任何“ temp”用户,他们的annl_salary列将始终显示0,但对于“ driver”描述,有时此描述将为0,因此我需要查看是否存在是一种方法:
检查annl_salary列中是否有0值,其中描述不等于“ temp”
如果有,则运行SQL查询以计算薪水,并为每个薪水为0且不是临时工的特定用户更新数据框中的0值
我对R还是陌生的,到目前为止我有这个,但是我被困住了:
library(RODBC)
library(xlsx)
data <- read.xlsx("Book1.xlsx", sheetName = "Sheet1")
if(data$annl_salary == 0 & data$description != "temp"){data$annl_salary = "SQL Query from RODBC to update the values for each user with 0 and not driver"}
答案 0 :(得分:1)
我会尝试类似的方法,但是如果不了解您需要查询的SQL数据库的结构,就很难知道。
library(RODBC)
channel <- odbcConnect("database")
sqlQuery(channel, paste("SQL QUERY"))
data$annl_salary <- ifelse(data$description != 'Temp' & data$annl_salary == 0, query, data$annl_salary)
data <- data %>%
arrange(annl_salary)