R:从字符串末尾提取子字符串


您可以使用以下方法在 R 中从字符串末尾开始提取子字符串:

方法一:使用Base R

 #define function to extract n characters starting from end
substr_end <- function (x, n){
  substr(x, nchar(x)-n+ 1 , nchar(x))
}

#extract 3 characters starting from end
substr_end(my_string, 3 )

方法2:使用stringr包

 library (stringr)

#extract 3 characters starting from end 
str_sub(my_string, start = - 3 )

这两个示例从名为my_string 的字符串中提取最后三个字符。

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (team=c('Mavericks', 'Lakers', 'Hawks', 'Nets', 'Warriors'),
                 dots=c(100, 143, 129, 113, 123))

#view data frame
df

       team points
1 Mavericks 100
2 Lakers 143
3 Hawks 129
4 Nets 113
5 Warriors 123

示例 1:使用 Base R 从末尾提取子字符串

以下代码演示了如何在基本 R 中定义自定义函数,然后使用该函数从team列中的每个字符串中提取最后三个字符:

 #define function to extract n characters starting from end
substr_end <- function (x, n){
  substr(x, nchar(x)-n+ 1 , nchar(x))
}

#create new column that extracts last 3 characters from team column
df$team_last3 <- substr_end(my_string, 3 )

#view updated data frame
df

       team points team_last3
1 Mavericks 100 cks
2 Lakers 143ers
3 Hawks 129 wks
4 Nets 113 ets
5 Warriors 123 gold

请注意,名为team_last3的新列包含数据框team列中每个字符串的最后三个字符。

示例 2:使用 stringr 包从末尾提取子字符串

以下代码演示如何使用 R 中stringr包中的str_sub()函数从team列中的每个字符串中提取最后三个字符:

 library (stringr)

#create new column that extracts last 3 characters from team column
df$team_last3 <- str_sub(df$team, start = - 3 )

#view updated data frame
df

       team points team_last3
1 Mavericks 100 cks
2 Lakers 143ers
3 Hawks 129 wks
4 Nets 113 ets
5 Warriors 123 gold

请注意,名为team_last3的新列包含数据框team列中每个字符串的最后三个字符。

这对应于先前使用 R 基的方法的结果。

相关R中str_sub函数介绍

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中选择包含特定字符串的列
如何从R中的字符串中删除字符
如何在R中查找字符串中的字符位置

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注