# 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的新手,我想知道是否有人能提出更好的方法?
答案 0 :(得分:2)
您可以按照David Arenburg在评论中的建议使用paste
和paste0
的组合:
paste0("CREATE TABLE (",
paste(dataframe1, collapse = " VARCHAR, "),
" VARCHAR)")
# [1] "CREATE TABLE (a VARCHAR, b VARCHAR, c VARCHAR)"