column name with brackets or other punctuations for dplyr group_by

前端 未结 2 1233
野趣味
野趣味 2020-12-19 10:43

I have an imported data frame that has column names with various punctuations including parentheses, e.g. BILLNG.STATUS.(COMPLETED./.INCOMPLTE) .

I was

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-19 11:14

    I think you can make this work if you enclose the "illegal" column names in backticks. For example, let's say I start with this data frame (called df):

      BILLING.STATUS.(COMPLETED./.INCOMPLETE) ORDER.VALUE.(USD)
    1                                       A        0.01544196
    2                                       A        0.95522706
    3                                       B        1.13479303
    4                                       B        1.22848285
    

    Then I can summarise it like this:

    dat %>% group_by(`BILLING.STATUS.(COMPLETED./.INCOMPLETE)`) %>% 
      summarise(count=n(),
                mean = mean(`ORDER.VALUE.(USD)`))
    

    Giving:

      BILLING.STATUS.(COMPLETED./.INCOMPLETE) count      mean
    1                                       A     2 0.4853345
    2                                       B     2 1.1816379
    

    Backticks also come in handy for referring to or creating variable names with whitespace. You can find a number of questions related to dplyr and backticks on SO, and there's also some discussion of backticks in the help for Quotes.

提交回复
热议问题