R 在字符串中的特定位置插入空格

R 在字符串中的特定位置插入空格,r,string,R,String,我有一个数据框,希望在特定位置插入一个空格。以下是数据示例: 0MHOCAN000006026421HOCAN000000392457HOCAN000005311227 0FHOUSA000002272874HOUSA000002272874HOUSA000050206641 0MHOUSA000002272874HOUSA000002076121HOUSA000014569699 这是我想要得到的(任何字母H前的空格): 您可以将gsub与固定字符串替换一起使用: x <- c("0M

我有一个数据框,希望在特定位置插入一个空格。以下是数据示例:

0MHOCAN000006026421HOCAN000000392457HOCAN000005311227
0FHOUSA000002272874HOUSA000002272874HOUSA000050206641
0MHOUSA000002272874HOUSA000002076121HOUSA000014569699
这是我想要得到的(任何字母H前的空格):


您可以将
gsub
与固定字符串替换一起使用:

x <- c("0MHOCAN000006026421HOCAN000000392457HOCAN000005311227",
"0FHOUSA000002272874HOUSA000002272874HOUSA000050206641",
"0MHOUSA000002272874HOUSA000002076121HOUSA000014569699")
gsub("H", " H", x, fixed=TRUE)
如果数据框
df
列名为
col1
,则可以使用

df$col1 = gsub("H", " H", df$col1, fixed=TRUE)

您可以将
gsub
与固定字符串替换一起使用:

x <- c("0MHOCAN000006026421HOCAN000000392457HOCAN000005311227",
"0FHOUSA000002272874HOUSA000002272874HOUSA000050206641",
"0MHOUSA000002272874HOUSA000002076121HOUSA000014569699")
gsub("H", " H", x, fixed=TRUE)
如果数据框
df
列名为
col1
,则可以使用

df$col1 = gsub("H", " H", df$col1, fixed=TRUE)

我们可以使用固定宽度读取:

基本函数
read.fwf

x1 <- read.fwf("temp.txt",
               widths = c(2, 17, 17, 17),
               col.names = paste0("myColName",1:4),
               stringsAsFactors = FALSE)
# check output
str(x1)
# 'data.frame': 3 obs. of  4 variables:
# $ myColName1: chr  "0M" "0F" "0M"
# $ myColName2: chr  "HOCAN000006026421" "HOUSA000002272874" "HOUSA000002272874"
# $ myColName3: chr  "HOCAN000000392457" "HOUSA000002272874" "HOUSA000002076121"
# $ myColName4: chr  "HOCAN000005311227" "HOUSA000050206641" "HOUSA000014569699"
x1
#   myColName1        myColName2        myColName3        myColName4
# 1         0M HOCAN000006026421 HOCAN000000392457 HOCAN000005311227
# 2         0F HOUSA000002272874 HOUSA000002272874 HOUSA000050206641
# 3         0M HOUSA000002272874 HOUSA000002076121 HOUSA000014569699

即使ID不是以字母
H
开头,并且ID可以包含多个
H
,我们可以使用固定宽度读取:

基本函数
read.fwf

x1 <- read.fwf("temp.txt",
               widths = c(2, 17, 17, 17),
               col.names = paste0("myColName",1:4),
               stringsAsFactors = FALSE)
# check output
str(x1)
# 'data.frame': 3 obs. of  4 variables:
# $ myColName1: chr  "0M" "0F" "0M"
# $ myColName2: chr  "HOCAN000006026421" "HOUSA000002272874" "HOUSA000002272874"
# $ myColName3: chr  "HOCAN000000392457" "HOUSA000002272874" "HOUSA000002076121"
# $ myColName4: chr  "HOCAN000005311227" "HOUSA000050206641" "HOUSA000014569699"
x1
#   myColName1        myColName2        myColName3        myColName4
# 1         0M HOCAN000006026421 HOCAN000000392457 HOCAN000005311227
# 2         0F HOUSA000002272874 HOUSA000002272874 HOUSA000050206641
# 3         0M HOUSA000002272874 HOUSA000002076121 HOUSA000014569699

即使ID不是以字母
H
开头,并且ID可以包含多个
H

查看已接受的答案,您应该提到您正在从文件中读取数据。查看已接受的答案,您应该提到您正在从文件中读取数据。