2016-05-23 7 views
0

Rのdata.treeライブラリのas.Node関数を使用して、メディアサーバーのログデータをツリーとして視覚化しようとしています。私は元のデータフレームを月と年でサブセット化していますので、一度に1ヶ月分のデータを実行できます。次のようにツリーにデータを回し、その後、.CSVとしてそれをプリントアウトするための私の機能コードは、次のとおりです。Rのデータ.treeパッケージからas.Nodeを実行する

treetrimmer2 <- function(x, y) { 
    urimodel <- as.Node(x) 
    uridf <- ToDataFrameTree(urimodel, "level", "count") 
    uridf <- filter(uridf, level <= y, count != 0) 
    filename <- paste(x$year[1], x$month[1], ".csv", sep="") 
    write.csv(uridf, file = filename, fileEncoding = "CP1252") 
} 

数ヶ月は、いかなる問題なく終了します。他の月は、しかし、私に次のエラー(トレースバック)を得た:

Error in (function() : unused argument (quote(<environment>)) 

7 (function() 
{ 
    c(self$parent$path, self$name) 
})(quote(<environment>)) 
6 self$AddChildNode(child) 
5 mynode$AddChild(path) 
4 FromDataFrameTable(x, pathName, pathDelimiter, colLevels, na.rm) 
3 as.Node.data.frame(x) 
2 as.Node(x) at media_visualizer.R#63 
1 treetrimmer2(uricut$`2015.06`, 5) 

は誰もが私に何の未使用引数(引用符())」に関するいくつかのガイダンス手段を与えることはできますか?私はそれを検索しようとしましたが、関数や用語が別のコンテキストで既に定義されていることを意味する場合があります。しかし、私はまだそれがここで何を意味するのか理解するのは初心者です。

Mac OS 10.11.5でrStudio 0.99.896とR 3.2.4を実行しています。かなり大規模であることを除いて、データセットを共有していますが、問題の原因となっている行がわからない...

+0

これはバグのようです。残念ながら、私はそれを再現することはできません。だから私にデータセットを送ってもらえますか? (data.treeのメンテナーとして提供された電子メール:https://cran.r-project.org/web/packages/data.tree/を参照してください)。また、data.tree 0.3.5を使用していますか(現在は最新のCRANから) –

+0

私は自分のデータセットを共有しています。 2つに分割し、両方を実行する段階的なプロセスを通して、問題を2万行に絞り込むことができました。これは電子メールに収まります。私はdata.tree 0.3.5を使用しています。 –

+0

これは本当に興味深いバグです。 https://github.com/gluc/data.tree/issues/65をご覧ください。 –

答えて

1

私はこれについてクレームを請求することはできません。 Christoph Glur(メインポストのコメントを参照)がそれを理解しました。

問題は、いくつかのログファイルにdata.treeパッケージの予約語の1つ、この場合は "path"が含まれていることです。行の形式は "/something/something/path/something/something.jpg"だったので、data.treeは "path"を独立した単語として読みました。バグの原因とならなかった「pathString」や「pathTo」などの大きな単語の一部としての「パス」の他の例がありました。

彼は私の解決策は、ターミナル内のログファイルのすべてで次のコマンドを実行した、それを考え出したのだたら:

sed -i '' 's/\/path\//\/spath\//' *.log 

何、私はまだ初心者だけど、私はそれを理解してつまり、 "/ path /"のインスタンスを "/ spath /"のすべての.logファイルで見つけて置き換えます。私は実際にその単語、パス対スパス(それは不器用です)を気にしないので、それを変更することは重要ではありませんでした。そして、as.Node()関数はデータセット上で正しく動作します。

ありがとう、クリストフ!

関連する問題