3

私は beeswarm プロット ( http://www.cbs.dtu.dk/~eklund/beeswarm/ ) をプロットしようとしましたが、それが機能するようになりました。今は、物事を自動化するための小さな R スクリプトを書きたいと思っています。この R スクリプトに与えたい入力は STDIN からのもので、STDIN からデータを読み取るのに問題があります。

ここに私のRスクリプトがあります:

args <- commandArgs(TRUE)
f1 <- args[1]

plotbeeswarm <- function(output){
    library(beeswarm)
    f <- read.table(stdin(), header=TRUE)
    png(output, width=800, height=800)
    beeswarm(Data ~ Category, data=f, pch=16, pwcol=1+as.numeric(sample), 
             xlab="")
}

plotbeeswarm(f1)

問題は、入力ファイルがどのように読み取られて f に処理されたかだと思います。コードの修正を手伝ってくれる人はいますか? どうもありがとう!

4

1 に答える 1

2

これは、私がlittlerの Web ページで使用している例であり、あなたRscriptも適応できるはずです。

スクリプトのコードは次のとおりです。

#!/usr/bin/r -i

fsizes <- as.integer(readLines(file("stdin")))
print(summary(fsizes))
stem(fsizes)

からの結果をフィードls -lし、フィルター処理しawkて、ファイル サイズの 1 列だけを取得します。

edd@max:~/svn/littler/examples$ ls -l /bin/ | awk '{print $5}' | ./fsizes.r 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
      3    6240   30820   61810   60170 2000000       1 

  The decimal point is 5 digit(s) to the right of the |

   0 | 00000000000000000000000000000000000111111111111111111111111122222222+57
   1 | 111112222345679
   2 | 7
   3 | 1
   4 | 1
   5 | 
   6 | 
   7 | 
   8 | 
   9 | 6
  10 | 
  11 | 
  12 | 
  13 | 
  14 | 
  15 | 
  16 | 
  17 | 
  18 | 
  19 | 
  20 | 0

edd@max:~/svn/littler/examples$ 
于 2013-08-28T22:35:54.853 に答える