如何根据条件更新数据帧值?
How to update dataframe values based on conditions?
我需要了解如何根据条件更新 R 中的数据帧值,然后使用查询 SQL 服务器进行计算并替换数据帧中的值。
例如,现在我的数据框如下所示:
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 列中是否存在描述不等于 "temp"
的任何 0 值
如果有,则运行一个SQL查询以计算薪水并为薪水为0的每个特定用户更新数据框中的0值,并且不是温度
- 然后按annl_salary和描述升序对数据框进行排序并导出到xlsx文件
我还是 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"}
我会尝试这样的事情,但如果不了解您需要查询的 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)
我需要了解如何根据条件更新 R 中的数据帧值,然后使用查询 SQL 服务器进行计算并替换数据帧中的值。
例如,现在我的数据框如下所示:
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 列中是否存在描述不等于 "temp"
的任何 0 值
如果有,则运行一个SQL查询以计算薪水并为薪水为0的每个特定用户更新数据框中的0值,并且不是温度
- 然后按annl_salary和描述升序对数据框进行排序并导出到xlsx文件
我还是 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"}
我会尝试这样的事情,但如果不了解您需要查询的 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)