在R中没有空格扫描?

时间:2013-01-03 05:17:12

标签: r

如何在.txt中扫描R中的个别字符?根据我的理解,扫描使用空格作为分隔符,但如果我想在R中使用空格作为要扫描的内容,我该怎么做?

即(我想扫描字符串“Hello World”)我如何得到H,e,l,l,o,,W,o,r,l,d?

2 个答案:

答案 0 :(得分:1)

我会采用两步法:首先使用readLines将文件作为纯文本阅读,然后将单行拆分为字符向量:

lines <- readLines("test.txt")
characterlist <- lapply(a, function(x) substring(x, 1:nchar(x), 1:nchar(x)))

请注意,此方法不会返回格式良好的矩阵或data.frame,而是返回列表。

根据您的目的,可能会有一些不同的修改:

unlist(characterlist)

为您提供一行中所有字符的向量。如果您的文本文件表现得非常好,以至于每行中的字符数完全相同,那么您只需将simplify=T添加到lapply即可获得字符矩阵。

答案 1 :(得分:1)

strsplit也是你的朋友:

test <- readLines(textConnection("Hello world
Line two"))
strsplit(test,"")


> strsplit(test,"")
[[1]]
 [1] "H" "e" "l" "l" "o" " " "w" "o" "r" "l" "d"

[[2]]
[1] "L" "i" "n" "e" " " "t" "w" "o"

并按照@Thilo的建议不公开......

> unlist(strsplit(test,""))
 [1] "H" "e" "l" "l" "o" " " "w" "o" "r" "l" "d" "L" "i" "n" "e" " " "t" "w" "o"