如何清除 R 中一列中的 obs 值

how to clean the obs values in a column in R

我有以下数据:

head(MS.data.in)
  encounter_id patient_nbr            race gender     age weight admission_type_id
1      2278392     8222157       Caucasian Female  [0-10)      ?                 6
2       149190    55629189       Caucasian Female [10-20)      ?                 1
3        64410    86047875 AfricanAmerican Female [20-30)      ?                 1
4       500364    82442376       Caucasian   Male [30-40)      ?                 1
5        16680    42519267       Caucasian   Male [40-50)      ?                 1
6        35754    82637451       Caucasian   Male [50-60)      ?                 2

我想通过取给定间隔的高 2 位数字来更改 'age' 列的 obs,如下所示:

head(MS.data.in$age)
[1] 10 20 30 40 50 60

我们可以使用 sub 通过匹配字符提取值,直到 - (.*-) 后跟捕获组 ((\d+)) 中的数字字符直到字符串结尾 (.*) 并替换为捕获组的反向引用 (\1)。

MS.data.in$age <- as.numeric(sub(".*-(\d+).*", "\1", MS.data.in$age))
MS.data.in$age
#[1] 10 20 30 40 50 60