关于如何添加前导0的很多答案,但是我的情况是这样的:
我有一个数据帧,其中第一列是PatientID,对于任何只有3个字符的数据,我需要在ID的第二个字符后加上0:
patientIDs <- c("E015", "E04", "E212") #what I have
patientIDsnew <- c("E015", "E004", "E212") #what I need
hr <- c(110, 105, 135)
df <- data.frame(patientIDs,patientIDsnew, hr)
我认为我需要在ifelse处计算str_length,如果<4,则将其添加零...但不确定第一部分的位置:
library(stringr)
df$patientIDsnew <- ifelse(str_length(df$patientIDs) < 4,
我们可以尝试将sub
用于基本R选项:
我们可以得到少于4个字符的patientIDs
,根据它们的位置断开字符串并将其粘贴在一起。
这是效率较低的版本,因为我很讨厌regex。在“ E”处拆分ID。然后,如果任何数字ID的长度小于3,则添加零。然后将它们放回原处。