我有一个具有以下列名的数据库(每个列名对应于一个人在不同年份的观察结果,即第1年,第2年):
Session <- c("Evidims_01_001_1", "Evidims_01_001_2", "Evidims_01_001_3", "Evidims_01_002_1", "Evidims_01_002_2", "Evidims_01_003_1", "Evidims_01_003_2" "Evidims_01_003_3", "Evidims_01_003_4", "Evidims_01_004_1")
我的想法是创建一个宽表,但首先我想删除字符串:"Evidims_0x_00x_y"并且只保留每个名字的最后一个数字,例如"1", "2&;
提前感谢!
你的意思是这样吗?
sub('.*_', '', Session)
#[1] "1" "2" "3" "1" "2" "1" "2" "3" "4" "1"
这也有帮助:
regmatches(Session, regexpr("\d+$", Session, perl = TRUE))
[1] "1" "2" "3" "1" "2" "1" "2" "3" "4" "1"
您也可以使用:
sub(".*(\d+)$", "\1", Session)
我们可以用base R
中的trimws
trimws(Session, whitespace = '.*_')
[1] "1" "2" "3" "1" "2" "1" "2" "3" "4" "1"