每行的新列来自对 R 中 mysql 数据库的查询
new column each row results from a query to mysql database in R
我有一个包含三列的简单数据框。其中一列包含数据库名称。我首先需要检查数据是否存在,如果不存在,则插入它。否则什么也不做。
示例数据框:
clientid;region;database
135;Europe;europedb
2567;Asia;asiadb
23;America;americadb
所以我创建了一个函数以这种方式应用于数据框:
library(RMySQL)
check_if_exist <- function(df){
con <- dbConnect(MySQL(),
user="myuser", password="mypass",
dbname=df$database, host="myhost")
query <- paste0("select count(*) from table where client_id='", df$clientid,"' and region='", df$region ,"'")
rs <- dbSendQuery(con, query)
rs
}
函数调用:
df$new_column <- lapply(df, check_if_exist)
但这行不通。
如果我理解正确的话,这是你所问内容的一个工作示例。但是我没有你的数据库,所以我们只是打印查询进行验证,并获取一个随机数作为结果。
请注意,通过执行 lapply(df,...)
,您将遍历数据库的列,而不是您想要的行。
df = read.table(text="clientid;region;database
135;Europe;europedb
2567;Asia;asiadb
23;America;americadb",header=T,sep=";")
check_if_exist <- function(df){
query = paste0("select count(*) from table where client_id='", df$clientid,"' and region='", df$region ,"'")
print(query)
rs <- runif(1,0,1)
return(rs)
}
df$new_column <- sapply(split(df,seq(1,nrow(df))),check_if_exist)
希望对您有所帮助。
我有一个包含三列的简单数据框。其中一列包含数据库名称。我首先需要检查数据是否存在,如果不存在,则插入它。否则什么也不做。
示例数据框:
clientid;region;database
135;Europe;europedb
2567;Asia;asiadb
23;America;americadb
所以我创建了一个函数以这种方式应用于数据框:
library(RMySQL)
check_if_exist <- function(df){
con <- dbConnect(MySQL(),
user="myuser", password="mypass",
dbname=df$database, host="myhost")
query <- paste0("select count(*) from table where client_id='", df$clientid,"' and region='", df$region ,"'")
rs <- dbSendQuery(con, query)
rs
}
函数调用:
df$new_column <- lapply(df, check_if_exist)
但这行不通。
如果我理解正确的话,这是你所问内容的一个工作示例。但是我没有你的数据库,所以我们只是打印查询进行验证,并获取一个随机数作为结果。
请注意,通过执行 lapply(df,...)
,您将遍历数据库的列,而不是您想要的行。
df = read.table(text="clientid;region;database
135;Europe;europedb
2567;Asia;asiadb
23;America;americadb",header=T,sep=";")
check_if_exist <- function(df){
query = paste0("select count(*) from table where client_id='", df$clientid,"' and region='", df$region ,"'")
print(query)
rs <- runif(1,0,1)
return(rs)
}
df$new_column <- sapply(split(df,seq(1,nrow(df))),check_if_exist)
希望对您有所帮助。