2016-07-27 2 views
0

X、Y、Groupの3つの列からなるデータを入力しました。delydir()でグループをループするR

私は、各グループのボロノイ図の基礎データを得ることを目指しています。私は正常にデータセット全体のためのボロノイデータを作成

a=deldir(Test.data$X,Test.data$Y,rw=c(0,1,0,1)) 

を使用することにより

。しかし、私はデータセットにあるさまざまなグループを通してこのプロセスを反復する方法を知らない。

誰にもアイデアはありますか?私はggplot機能をexpereinceを持っていると私は単純に三次元を追加することができ、ここで知って、

ggplot(Test.data,aes(x=X,y=Y,colour=Group)) 

のようなものは、私は、同様のdeldir()関数では影響

感謝を得ることができる方法はありますあなたの助けを前に進んでください。

ベン

答えて

0

グループのリストを作成してからフィルタリングすることを検討してください。しかし、私は今、私は以前にはなかったCSVファイルへのデータの書き込みの問題が生じています、この出力は完璧に動作し、

groups <- unique(Test.data$groupcol) 

deldirList <- lapply(groups, function(g) { 
         temp <- Test.data[Test.data$groupcol==g,] 
         deldir(temp$X, temp$Y, rw=c(0,1,0,1)) 
       }) 
+0

こんにちはパフェ:lapply()下にdeldirオブジェクト、各個別のグループに1つのリストを作成します。 deldirListは 'LargeList'として書き込みます。小さなデータセットでしか動作しない場合、「List」として保存されます。 私はちょうど関数に write.csv(deldirList $ delshs、「Output.csv」)を使用していますCSVにリストを書き込むために これは、通常のリストで動作しますが、大規模なリストを使用して、出力は空白です。 csvsに大きなリストを書く別の方法はありますか? –

+0

前述のように、 'deldirList'は個々の' deldir'オブジェクトのリストです。これはネストされたリストです。 'lapply()'ループの中に 'write.csv()'を追加するか、 'deldirAll < - do.call(rbind、deldirList);を実行することで個々の項目をファイルに保存できます。 write.csv(deldirAll、 "Output.csv") 'すべてのリストを一緒に追加します。 – Parfait

+0

どうしたの?私は完全にテストするパッケージを持っていないのですか? 'dput(deldirList)'を試して、他のソリューションをテストしてみてください。 – Parfait