0

我正在尝试一次读取一行随机文本文件。然后将该行拆分为“单词”并对每个单词执行一些正则表达式,例如查找所有以“w”开头的单词。在以下类似代码片段之后,我得到:

while (length(oneLine <- readLines(infile, n = 1, warn = FALSE)) > 0) {
    myVector <- (strsplit(oneLine, " ", fixed = FALSE, perl = TRUE))
    res <- grep("^w", myVector, perl = TRUE, value = TRUE)
    ...

> myVector
[[1]]
[1] "u"            "rtu"          "jgiyu"        "t6riuri-4e5-" "ee4"          "59"          
[7] "43"   

我的问题是,访问 "u", "rtu", ... 的正确语法是什么?

> myVector[1]
[[1]]
[1] "u"            "rtu"          "jgiyu"        "t6riuri-4e5-" "ee4"          "59"          
[7] "43"  

不工作。会怎样?[[1]] 怎么了?我的印象是向量是一维的,它的元素可以像 myVector[1]、myVector[2] 等访问。感谢您的帮助。

4

1 回答 1

0

strsplit返回一个列表。在这种情况下,它是一个长度为 1 的列表,但如果您readLines在整个文件上使用,然后调用strsplit,它将返回一个长度与行数相同的列表。

对于您使用它的方式,您需要选择列表第一个组件的第一个元素。即myVector[[1]][1]“u”和myVector[[1]][2]“rtu”。此外,在这种情况下,unlist(myVector)[1]并且unlist(myVector)[2]会起作用。

于 2014-01-21T23:41:30.057 回答