我试图一次读取一行随机文本文件。然后将该行拆分为“单词”并对每个单词执行一些正则表达式,例如查找以“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]等一样被访问。 谢谢你的帮助。
答案 0 :(得分:0)
strsplit
返回一个列表。在这种情况下,它是长度为1的列表,但是如果您在整个文件上使用readLines
,然后调用strsplit
,它将返回与行数相同长度的列表。 / p>
对于您使用它的方式,您需要选择列表第一个组件的第一个元素。即“{”为myVector[[1]][1]
,“rtu”为myVector[[1]][2]
。此外,在这种情况下,unlist(myVector)[1]
和unlist(myVector)[2]
也可以。