【发布时间】:2019-03-07 02:27:48
【问题描述】:
我有一个已清理字母的输入流,我想将其转换为从 1 到 27 的数字向量(所有字母包括空格)。我无法想象嵌套的 for 循环是做到这一点的最佳方式。没有循环可以吗?
space_letters = append(letters, " ")
text_to_numbers = function (input_stream) {
input_stream = unlist(strsplit(input_stream, split = ""))
for(i in 1:length(input_stream)) {
for(j in 1:length(space_letters) {
if(input_stream[i] == space_letters[j]) {
input_stream[i] = j
}
}
}
return(as.integer(input_stream))
}
【问题讨论】:
-
你能添加你想要的输出应该是什么样子的吗?所需的行为不明确
-
基本上,如果我输入“abcdef”,它应该返回 (1,2,3,4,5,6)。如果我输入“猫”,它应该返回 (20,8,5,27,3,1,20)。所以只要把字母变成对应的数字。
标签: r for-loop optimization letter