如何清除R中列中的obs值

如何清除R中列中的obs值,r,data-cleaning,R,Data Cleaning,我有以下数据: 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)

我有以下数据:

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
我想更改“年龄”列的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

MS.data.在$age中,我们可以使用
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

MS.data.in$age极好..我需要时间来理解'sub'是如何工作的..试图通过修改代码来获得间隔的前两位数..失败得很惨!太好了。我需要时间来理解“sub”是如何工作的。我试图通过修改代码来获得间隔的前两位数。失败得很惨!