【发布时间】:2011-05-21 04:19:36
【问题描述】:
我可以制作一个这样的数字序列:
s = seq(from=1, to=10, by=1)
如何从 A-Z 创建一个字符序列?这不起作用:
seq(from=1, to=10)
【问题讨论】:
标签: r character ascii sequence seq
我可以制作一个这样的数字序列:
s = seq(from=1, to=10, by=1)
如何从 A-Z 创建一个字符序列?这不起作用:
seq(from=1, to=10)
【问题讨论】:
标签: r character ascii sequence seq
LETTERS 返回 A-Z
以生成 A-E 为例
大写:
> LETTERS[1:5]
小写
letters[1:5]
【讨论】:
R.oo 包有一个 intToChar 函数,它使用 ASCII 值,如果 LETTERS 和 letters 没有任何好处。 A 在 ASCII 中是 65:
> require(R.oo)
> intToChar(65:79)
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O"
或者您可以使用最低 unicode 数字是 ascii 的事实,因此在 R-base 中是 intToUtf8,如下所示:
> intToUtf8(65:78,multiple=TRUE)
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
或使用rawToChar:
> rawToChar(as.raw(65:78))
[1] "ABCDEFGHIJKLMN"
【讨论】:
只需使用预定义变量letters 和LETTERS。
为了完整起见,这里使用seq:
R> rawToChar(as.raw(seq(as.numeric(charToRaw('a')), as.numeric(charToRaw('z')))))
[1] "abcdefghijklmnopqrstuvwxyz"
R>
【讨论】:
使用letters 和/或LETTERS 的代码:
> LETTERS[seq( from = 1, to = 10 )]
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J"
> letters[seq( from = 1, to = 10 )]
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
【讨论】:
使用LETTERS 和letters(分别表示大写和小写)。
【讨论】: