2016-03-11 1 views
4

Я хотел бы вставить два столбца в удаленной базе данных с помощью dplyr. Я пытался что-то вроде этого:dplyr для вставки столбцов в удаленную базу данных

mydb %>% 
    select(A, B) %>% 
    mutate(newcol = paste(A, B, collapse = "_")) 

Но я получаю сообщение об ошибке говорящее Error in paste(A, B, collapse = "_") : object 'A' not found. Что такое перенос пасты dplyr?

Я пробовал:

> translate_sql(paste(x, y, sep = "_")) 
<SQL> PASTE("x", "y", '_' AS "sep") 

Так я включил этот синтаксис, чтобы попытаться:

mydb %>% 
    select(A, B) %>% 
    mutate(newcol = PASTE("A", "B", "_" AS "sep")) 

, но с помощью этого не получилось, с погрешностью Named arguments ignored for SQL PASTE. Мысли?

ответ

1

paste() связывает только список элементов, разделенных значением collapse. поскольку здесь у вас есть только одно значение, правильный способ - использовать sep. Также целая колонка рассматривается в paste(), поэтому group_by используется для их разделения.

mydb %>% 
    group_by(A, B) %>% 
    mutate(newcol = paste(A, B, sep = "_"))