【问题标题】:How to group by a last letter in a column如何按列中的最后一个字母分组
【发布时间】:2021-07-26 10:03:28
【问题描述】:

我要为我的作业创建一个图表,该图表应该是基于一列值的最后一个字母的线图。例如:

data <- data.frame(c('apple', 'banana', 'pie', 'fries', 'tomato', 'cheese'))

data %>%
 group_by(here i should group by names ending with the same last letter) 
 ...

以上只是我想要实现的大纲和示例。我寻找解决方案,但找不到。有什么办法解决这个问题?

谢谢!

【问题讨论】:

    标签: r string ggplot2 dplyr data-visualization


    【解决方案1】:

    您可以使用stringr::str_sub()

    data %>%
     group_by(last_letter = stringr::str_sub(column, -1, -1))
    

    【讨论】:

      【解决方案2】:

      这里有几个其他选项 -

      1. substring -
      library(dplyr)
      
      data <- data.frame(col = c('apple', 'banana', 'pie', 'fries', 'tomato', 'cheese'))
      data %>% group_by(grp = substring(col, nchar(col)))
      
      1. 使用sub -
      data %>% group_by(grp = sub('.*(.)$', '\\1', col))
      

      【讨论】:

      • 您也提供了一个可行的解决方案,但另一个更简单且更早给出,所以我必须接受它作为当前答案。但我也会对此表示赞同。谢谢
      【解决方案3】:

      str_replace 的选项

      library(dplyr)
      library(stringr)
      data %>% 
          group_by(grp = str_replace(col, ".*(.)$", "\\1"))
      

      【讨论】:

        猜你喜欢
        • 2010-09-30
        • 2013-08-22
        • 2023-04-03
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        • 2016-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多