我正在尝试读取一个随机的文本文件,每次一行。然后将行拆分为“单词”,并对每个单词执行一些正则表达式,比如查找所有以"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]是怎么回事?我的印象是向量是一维的,它的元素可以像myVector1,myVector2等一样访问。谢谢你的帮助。
发布于 2014-01-22 07:41:30
strsplit返回一个列表。在本例中,它是一个长度为1的列表,但是如果对整个文件使用readLines,然后调用strsplit,它将返回一个长度与行数相同的列表。
对于您使用它的方式,您需要选择列表的第一个组件的第一个元素。即myVector[[1]][1]代表"u“,myVector[[1]][2]代表"rtu”。此外,在这种情况下,unlist(myVector)[1]和unlist(myVector)[2]也可以工作。
https://stackoverflow.com/questions/21271293
复制相似问题