返回与R中指定的Ascii代码关联的字符

时间:2013-03-02 20:48:46

标签: r character ascii

下午好,

我正在尝试使用字母表中的字母在R中创建笛卡尔积。

我实际上在尝试的是:

首先,我创建一个带字母

的矩阵
a <- as.matrix(seq(97,122,by=1))

然后我创建一个包含2列所有组合的数据框

b <- expand.grid(a, a)

最后我结合了两列

apply(b,1,paste,collapse=" ")

我遇到的问题是我无法找到将这些“小数”转换为其Ascii字符的方法。

我尝试了几个像rawToChar和gsub这样的事情。

有人能指出我正确的方向吗?

由于

3 个答案:

答案 0 :(得分:21)

基于ASCII码返回字符的一种非常简单的方法是函数intToUtf8。它也适用于包含多个整数的向量,并将相应的字符作为一个字符串返回。

vec <- 97:122
intToUtf8(vec)
# [1] "abcdefghijklmnopqrstuvwxyz"

intToUtf8(65)
# [1] "A"

答案 1 :(得分:3)

第一种直接方法:

res <- do.call(paste, expand.grid(letters, letters))

如果您有其他一些ascii值,并且想要获得等效字符:

val <- 65:96 # whatever values you want the equivalent characters for
mode(val) <- "raw" # set mode to raw
# alternatively, val <- as.raw(65:96)
a   <- sapply(val, rawToChar)
res <- do.call(paste, expand.grid(a, a))

答案 2 :(得分:1)

要在R中打印ASCII字符,您可以在ASCII代码编号之前使用带有反斜杠print的{​​{1}}函数。例如,要打印相当于150的字符,请使用\

或者您可以尝试上面的示例:

print("\150")