2017-11-13 9 views
0

現在、葉の領域を分析し、それをクラスタ内の葉の位置と比較するプログラムで作業しています(つまり、最初の葉、3番目、最後などです)。 )、位置、面積、質量などの関係を分析しています。私は約5,000の葉と1,000のクラスタのデータベースを持っており、それが問題の発生場所です。データサイズに基づいて 'R'でデータを分割する

クラスタの番号は異なりますが、ほとんどの場合、5つの葉がありますが、その中には2つ、8つ、またはその間にあるものがあります。私はクラスター内の番号でクラスターを分ける方法が必要なので、プログラムは3つのクラスターをクラスターと同じように扱いません。私の.csvには個々のリーフが個別に入力されていますので、 。

私はむしろ 'R'で新しくなっているので、ここで明らかなスキルを逃しているかもしれませんが、どんな助けでも大歓迎です。私はこれがむしろ混乱していることも理解していますので、質問を明確にして返信してください。

ありがとうございます。

+0

あなたのコードはどこですか? – Ibo

+0

私はそれを提供することができますが、私の現在のプロジェクトはデータをサブセット化していないため、何もすることはほとんどありません。私はちょうどデータをサブセット化する方法を必要とします。これまで何もしていないことがあります。 –

答えて

0

私が質問を正しく理解していれば、いくつかの定義されたグループ(あなたのケースではclusterPosition?)に基づいて物事を計算したいと思うようです。 dplyrでこれを行う1つの方法は、group_bysummarizeまたはmutateと使用することです。後者は元のデータセット内のすべての行を保持し、新しい列を単純に追加します。前者は行のように集計し、グループ化された各変数の集計統計を返します。

例として、あなたのデータは、このようなものに見える場合、:あなたは、以下のような何かを考え、それぞれ独自のclusterPositionの平均値と標準偏差を得るために

df <- data.frame(leafArea = c(2.0, 3.0, 4.0, 5.0, 6.0), cluster = c(1, 2, 1, 2, 3), clusterPosition = c(1, 1, 2, 2, 1))

を、これはそれぞれのために1行を返します。一意のclusterPosition。

library(dplyr) 
df %>% group_by(clusterPosition) %>% summarize(meanArea = mean(leafArea), sdArea = sd(leafArea)) 

あなたはそれのいくつかの特徴clusterPositionだにそれぞれユニークな葉を比較したい場合は、集計の代わりに変異し使用することができ、あなたは元のデータセット内のすべての個々の行を保持したい。すなわち。

library(dplyr) 
df %>% group_by(clusterPosition) %>% mutate(meanPositionArea = mean(leafArea), diffMean = leafArea - meanPositionArea) 
関連する問題