1. 程式人生 > 其它 >R語言——字串提取函式

R語言——字串提取函式

1、substr函式:提取指定位置的字元

根據身份證號計算年齡:

# 讀入資料
id_number <- readxl::read_excel("D:/身份證.xlsx",sheet="Sheet1")

在這裡插入圖片描述

# 提取出生年份
year1 <- substr(id_number$身份證號,7,10)
# year2 <- substring(id_number$身份證號,7,10) 也是一樣的

在這裡插入圖片描述

# 計算年齡
year <- format(Sys.time(),"%Y")  #若是輸入的日期,可以使用as.Date函式將輸入的日期轉變為日期型,在提取出生日期

age <- as.numeric(year)-as.numeric(year1)
age

在這裡插入圖片描述

2、str_extract函式:提取首個匹配模式的字元

# 因為身份證號有規律,可以通過指定字串中的字元位置提取規定的值;若不知道字串的位置,可通過stringr包中的str_extract函式提取,可使用正則表示式匹配。
str_extract(id_number$身份證號,"110101") 

在這裡插入圖片描述

3、str_detect:檢測字元是否存在某些指定模式

str_detect(id_number$身份證號,"110101")

在這裡插入圖片描述
配合sum函式可計算滿足條件的字串個數。

4、str_locate:返回首個匹配模式的字元的位置

str_locate(id_number$身份證號,"110101")

在這裡插入圖片描述

5、str_sub:提取指定位置的字元

#可與str_locate函式配合使用,這裡達到與str_extract函式函式的效果
str_sub(id_number$身份證號,str_locate(id_number$身份證號,"110101"))

在這裡插入圖片描述