R語言——字串提取函式
阿新 • • 發佈:2020-12-22
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"))