如何按列中的最后一个字母分组

How to group by a last letter in a column

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

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) 
 ...

以上只是大纲和我正在努力实现的示例。我寻找解决方案但找不到。解决办法是什么?

先谢谢了!

您可以使用 stringr::str_sub() :

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

这里有几个其他选项 -

  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))

选项str_replace

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