R 基于字母创建数字向量
所以,问题是: 创建一个给定一个单词的函数,返回位置 单词的字母在字母向量上的位置。例如,如果 如果为'abba',函数将返回1。“ 到目前为止,我得到的是:R 基于字母创建数字向量,r,R,所以,问题是: 创建一个给定一个单词的函数,返回位置 单词的字母在字母向量上的位置。例如,如果 如果为'abba',函数将返回1。“ 到目前为止,我得到的是: l <- function(word) { chr <- c() y <- c() strsplit(chr,word) i<-1 while(i<length) { o<-letters[i] x<-chr[i]
l <- function(word) {
chr <- c()
y <- c()
strsplit(chr,word)
i<-1
while(i<length) {
o<-letters[i]
x<-chr[i]
if(o==x) {
y[i]<-i
}
i+1
}
y
}
llibrary(purrr)
我的乐趣%
strsplit(“”%>%
地图(系数,等级=字母)%>%
映射(如数字)
}
x[[1]]
#> [1] 1 2 2 1
#>
#> [[2]]
#> [1] 8 5 12 12 15
这里我们使用的因子是隐藏的整数
让str
成为字符向量,例如str和base R
:
lapply(strsplit(x, "", fixed = TRUE), match, letters)
[[1]]
[1] 1 2 2 1
我在base
中提供了另一个有趣的函数:
x <- "abcxyz"
strtoi(strsplit(x, "")[[1]], 36) - 9
# [1] 1 2 3 24 25 26
x您没有将strsplit的输出分配给任何对象。另外,您的拆分参数丢失,应该是spit=“
我正在查看stroi
的文档(从未使用过,似乎很酷),但是您能解释一下36和9的来源以及它们在这里的作用吗?@camille我很抱歉忽略了解释。我编辑我的答案。
x <- "abcxyz"
strtoi(strsplit(x, "")[[1]], 36) - 9
# [1] 1 2 3 24 25 26