0

一度に 1 行ずつランダムなテキスト ファイルを読み込もうとしています。次に、行を「単語」に分割し、「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]] はどうしたの? ベクトルは 1 次元であり、その要素は myVector[1]、myVector[2] などのようにアクセスされるという印象を受けました。助けてくれてありがとう。

4

1 に答える 1

0

strsplitリストを返します。この場合、これは長さ 1 のリストですが、readLinesファイル全体で使用してから を呼び出すとstrsplit、行数と同じ長さのリストが返されます。

使用方法については、リストの最初のコンポーネントの最初の要素を選択する必要があります。つまりmyVector[[1]][1]、「u」とmyVector[[1]][2]「rtu」の場合です。また、この場合、unlist(myVector)[1]andunlist(myVector)[2]が機能します。

于 2014-01-21T23:41:30.057 に答える