从'A'-'Z'生成一系列字符

44
我可以创建这样一个数字序列:
s = seq(from=1, to=10, by=1)

如何生成 A 到 Z 的字符序列?以下代码不起作用:

seq(from=1, to=10)
5个回答

62

使用LETTERSletters(分别表示大写和小写)。


49
使用你已经拥有的代码中的 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"

8
只需使用 LETTERS 的第1到10个字母。 - skan

16

只需使用预定义变量lettersLETTERS

为了完整起见,这里是使用seq的内容:

R> rawToChar(as.raw(seq(as.numeric(charToRaw('a')), as.numeric(charToRaw('z')))))
[1] "abcdefghijklmnopqrstuvwxyz"
R> 

12

R.oo软件包具有一个intToChar函数,该函数使用ASCII值,如果LETTERSletters不适用。 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"

2

LETTERS 返回 A-Z

例如,要生成 A-E:

大写:

> LETTERS[1:5]

小写字母

letters[1:5]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接