需要将0添加到具有特定字符长度的所有元素的特定位置

问题描述 投票:0回答:3

关于如何添加前导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, 
r string dataframe gsub stringr
3个回答
1
投票

我们可以尝试将sub用于基本R选项:


1
投票

我们可以得到少于4个字符的patientIDs,根据它们的位置断开字符串并将其粘贴在一起。


0
投票

这是效率较低的版本,因为我很讨厌regex。在“ E”处拆分ID。然后,如果任何数字ID的长度小于3,则添加零。然后将它们放回原处。

© www.soinside.com 2019 - 2024. All rights reserved.