1

最初にタブで区切られた 1 行の文字列があり、次に各列内でサブ列が ^A で区切られています。Rでそれを行う方法は誰でも知っています。

最初のステップで「タブ」で行を分割することさえできませんでした。私のコードは以下のとおりで、Rscript を使用して stdin から読み取ります。

#!/usr/bin/Rscript

input = file('stdin', 'r')

while(length(row<-readLines(input, n=1))>0){
    fields = strsplit(row, '\t')
    key = fields[1]
    value = fields[2]
    write(length(fields), stdout())
}

次に、コードを実行します。

$ cat input | ./reducer.R 
1
1
1

私の入力は、タブ区切りの次のようになります。

1        2
3        4
5        6 

なぜ分割ステートメントが機能しないのか理解できません

4

2 に答える 2

3

あなたの意見がないとわかりにくいですが、おそらくあなたは次のことを望んでいます:

key = fields[[1]][[1]]
value = fields[[1]][[2]]

上記が機能する場合、次のようになる可能性があります。

fields = strsplit(row, '\t') [[1]]
key = fields[1]
value = fields[2]

strsplitリストを返します (ベクトル化された操作には最適ですがgotcha、リスト出力が期待されない場合)

于 2013-10-11T17:37:17.370 に答える