[英]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.