3
有沒有辦法在一組數據幀上使用bind_rows()
,而無需首先從數據庫中收集它們?有沒有辦法在不從數據庫中收集數據框的情況下使用dplyr :: bind_rows?
說我已經定義了幾個dplyr查詢表:
mydatabase <- src_mysql('database')
table1 <- tbl(mydatabase,"table1")
table2 <- tbl(mydatabase,"table3")
foo <- table1 %>% filter(id > 10) %>% select(id)
bar <- table2 %>% select(id)
我希望能夠加入foo和bar在一起 - 在本質上,我想在執行工會兩個子查詢,而不必刪除到SQL。然而,當我嘗試,我得到一個錯誤,因爲我試圖連接兩個tbl_sql對象,而真正的數據幀:
unioned_data_frame <- bind_rows(foo,bar)
Error: incompatible sizes (1 != 8)
有什麼建議?在這個玩具的例子中,用SQL編寫整個查詢不會是一個問題,但當然,在現實生活中,foo和bar通常要複雜得多。
我可以使用'dplyr :: union()'來處理SQL查詢方面的繁重工作,但它沒有'bind_rows()'所具有的非常方便的.id參數。 也許我必須沒有? – crazybilly
我想你想'dplyr :: union_all()'爲了完美地複製'bind_rows()',但是,你可能不得不使用'mutate()'創建一個標識符的附加列,它是不幸的。 – HoHo