繁体   English   中英

R,readLines,strsplit和grep

[英]R, readLines, strsplit and grep

我试图一次只读取一行随机文本文件。 然后将行拆分为“单词”,并对每个单词执行一些正则表达式,例如查找所有以“ 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]等那样访问其元素。感谢您的帮助。

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

对于使用它的方式,您需要选择列表中第一个组件的第一个元素。 myVector[[1]][1]为“u”和myVector[[1]][2]为“RTU”。 同样,在这种情况下, unlist(myVector)[1]unlist(myVector)[2]也可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM