2014-09-30 3 views
1
# 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에 익숙하지 않기 때문에 누군가가 더 나은 접근 방식을 제안 할 수 있을지 궁금합니다.데이터 프레임의 내용을 사용하여 R로 SQL 구조 테이블 만들기

코멘트에 데이비드 Arenburg에 의해 제안 당신은 그냥 pastepaste0의 조합을 사용할 수 있습니다
+0

그냥 "(테이블 만들기"('paste0을 할 수있는 루프 또는 추가 변수를 필요로하지 않는다 , 붙여 넣기 (dataframe1, 축소 = "VARCHAR,"), "VARCHAR)")' –

+0

매우 멋진 솔루션 감사합니다 –

답변

2

:

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