2014-01-21 6 views
0

한 번에 한 줄씩 임의의 텍스트 파일을 읽으려고합니다. 그런 다음 라인을 "단어"로 분할하고 "w"로 시작하는 모든 단어를 찾는 것처럼 각 단어에 대해 일부 정규식을 수행하십시오. 코드 조각처럼 다음 후 내가 얻을 :R, readLines, strsplit 및 grep

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]]은 뭐래? 나는 벡터가 1 차원이고 그 요소가 myVector [1], myVector [2] 등과 같이 접근한다는 인상하에 있었다. 도움을 주셔서 감사합니다.

답변

0

strsplit 목록을 반환합니다. 이 경우 길이 1의 목록이지만 전체 파일에 readLines을 사용한 경우 strsplit이라고하면 줄 수와 같은 길이의 목록이 반환됩니다.

사용하는 방법에 따라 목록의 첫 번째 구성 요소 중 첫 번째 요소를 선택해야합니다. 즉 "u"의 경우 myVector[[1]][1]이고 "rtu"의 경우 myVector[[1]][2]입니다. 또한이 경우 unlist(myVector)[1]unlist(myVector)[2]이 작동합니다.

+1

이렇게하면 작업이 완료됩니다. – user2970161