在R中,如何在不使用分隔符的情况下拆分字符串

在R中,如何在不使用分隔符的情况下拆分字符串,r,split,R,Split,我正在尝试split方法,希望字符串的第二个元素只包含2个元素。字符串的大小为2 示例: string= "AC" 结果应该是我得到的第一个字母(“a”)后的拆分: res= [,1] [,2] [1,] "A" "C" 我尝试过使用split,但是我不知道如何在第一个元素之后进行分割???split不用于这种字符串操作。您要查找的是strsplit,在您的情况下,它将被用于以下内容: strsplit(string,"",fixed = TRUE) strsplit(st

我正在尝试split方法,希望字符串的第二个元素只包含2个元素。字符串的大小为2

示例:

string= "AC"
结果应该是我得到的第一个字母(“a”)后的拆分:

res=    [,1] [,2]
     [1,] "A" "C"

我尝试过使用split,但是我不知道如何在第一个元素之后进行分割???

split
不用于这种字符串操作。您要查找的是strsplit,在您的情况下,它将被用于以下内容:

strsplit(string,"",fixed = TRUE)
strsplit(string,"",fixed = TRUE)[[1]]
您可能不需要
fixed=TRUE
,但这是我的习惯,因为我倾向于避免使用正则表达式。您似乎表示希望结果类似于矩阵
strsplit
将返回一个列表,因此您需要如下内容:

strsplit(string,"",fixed = TRUE)
strsplit(string,"",fixed = TRUE)[[1]]
然后将结果传递到矩阵

strsplit()
将执行您想要的操作(如果我理解您的问题)。您需要在“
”上拆分“
”以拆分其元素上的字符串。下面是一个示例,演示如何对字符串向量执行所需操作:

strs <- rep("AC", 3) ## your string repeated 3 times
这是一个列表,因此我们可以使用
lappy()
sapply()
处理它。我们需要将
sstrs
的每个元素子集,以选择第二个元素。为此,我们应用
[
功能:

sapply(sstrs, `[`, 2)
产生:

> sapply(sstrs, `[`, 2)
[1] "C" "C" "C"
如果你只有一个字符串,那么

strsplit("AC", "")[[1]][2]
其中:

> strsplit("AC", "")[[1]][2]
[1] "C"

如果您确定它始终是两个字符字符串(通过
all(nchar(x)=2)
)进行检查,并且只需要一秒钟,则可以使用
sub
substr

x <- c("ab", "12")
sub(".", "", x)
# [1] "b" "2"
substr(x, 2, 2)
# [1] "b" "2"
x