【发布时间】:2019-07-31 14:52:40
【问题描述】:
我有一个oracle 表和一个col COMPLAINT_REASON
complaints_tbl %>% head() %>% select(COMPLAINT_REASON)
# Source: lazy query [?? x 1]
# Database: Oracle 12.01.0020[user@user_db/]
COMPLAINT_REASON
<chr>
1 Payment Related
2 Bill Related
3 Order Management
4 Repair/Connection related
5 Broadband
6 Product fault
我正在尝试创建一个名为primary_reason 但具有不同值的新列,即如果COMPLAINT_REASON = Payment Related 那么primary_reason 应该有Payments。如果none 匹配,则具有primary_reason 列中的值。
在正常情况下,我会使用data.table:
complaints_tbl <- complaints_tbl[,primary_reason := forcats::fct_recode(COMPLAINT_REASON,
"Payments" = "Payment Related",
"Billing" = "Bill Related",
"Orders" = "Order Management",
"Billing" = "Billing/Payment Enquiry")]
如您所见,不可用的将按原样归于primary reason。 (Product fault, Broadband, Repair/Connection related) 和 Payment Related 在 primary_reason 中变为 Payments 等。
我试过了:
complaints_tbl %>% mutate(primary_reason = forcats::fct_recode(COMPLAINT_REASON
"Payments" = "Payment Related",
"Billing" = "Bill Related",
"Orders" = "Order Management",
"Billing" = "Billing/Payment Enquiry"))
但得到错误:
Error in check_factor(.f) : object 'COMPLAINT_REASON' not found
最后,最好将新的 col 推回到我在 oracle 中的现有表中以供将来使用。
有什么建议吗? 干杯
【问题讨论】: