使用数据帧的内容在R中创建SQL结构表

时间:2014-09-30 12:48:02

标签: sql r dataframe

#   Create dummy dataframe
dataframe1 <- rbind("a","b","c")

#   Create variable list 
variablelist <- unique(dataframe1[,1])

#   Loop through adding VARCHAR and commas
sql_var_list <- NULL

for(char in seq_along(variablelist)){
  sql_var_list <- paste(sql_var_list,client_variables[char]," VARCHAR,",sep="")
}

#   Remove the final comma
sql_var_list <- substr(sql_var_list, 1, nchar(sql_var_list)-1)

#   Create structure table SQL string
create_strture_table <- paste("CREATE TABLE (",sql_var_list,")",sep="")

在上面的代码中,我使用R中数据框中一列的内容来创建一个稍后将在redshift中创建的结构表。上面的代码是有效的,但是我的方法似乎有点凌乱,因为我是R的新手,我想知道是否有人能提出更好的方法?

1 个答案:

答案 0 :(得分:2)

您可以按照David Arenburg在评论中的建议使用pastepaste0的组合:

paste0("CREATE TABLE (", 
       paste(dataframe1, collapse = " VARCHAR, "), 
       " VARCHAR)")
# [1] "CREATE TABLE (a VARCHAR, b VARCHAR, c VARCHAR)"