行の値が一致する場合に、データフレームの列の値を別のデータフレームの値で除算する

C.デニー

私はdata.frame x次の形式で持っています:

     species      site  count
1:         A       1.1     25
2:         A       1.2   1152
3:         A       2.1     26
4:         A       3.5      1
5:         A       3.7     98
---                         
101:       B       1.2      6
102:       B       1.3     10
103:       B       2.1      8
104:       B       2.2      8
105:       B       2.3      5

私はまたdata.frame area、次の形式の別のものを持っています:

      species    area
1:          A    59.7
2:          B    34.4
3:          C    37.7
4:          D    22.8

私は、分割したいcountの列data.frame xの値によってareaカラムdata.frame areaとき各種列の値がdata.frame一致

私はそれをddply関数で動作させようとしています:

density = ddply(x, "species", mutate, density = x$count/area[,2]

しかしarea[]、で見つかった値に一致する行のみを選択するための呼び出しの適切なインデックス構文を理解できませんx$speciesしかし、私はplyrパッケージに非常に新しい(そしてapply*全体として機能する)ので、これは完全に間違ったアプローチかもしれません

data.frame次の形式のを返すことを望んでいます:

     species      site  count   density
1:         A       1.1     25     0.419
2:         A       1.2    152     2.546
3:         A       2.1     26     0.436
4:         A       3.5      1     0.017
5:         A       3.7     98     1.641
---                         
101:       B       1.2      6     0.174
102:       B       1.3     10     0.291
103:       B       2.1      8     0.233
104:       B       2.2      8     0.233
105:       B       2.3      5     0.145
MichaelChirico

これは簡単data.tableです:

library(data.table)
#converting your data to the native type for the package (by reference)
setDT(x); setDT(area) 
x[area, density:=count/i.area, on="species"]

:=これについての詳細と重要な理由については、data.table参照によりこのビネットと特にポイントbを参照)に列を追加する自然な方法ですしたがってx:=y、に名前x付けた列を追加し、data.tableそれに値を割り当てますy

フォームX[Y,]マージするとき、操作Yするの行を選択することと考えることができますXさらに、時にYあるdata.tableの両方で、すべてのオブジェクトXYで下盛ありj、我々が言ったかもしれないので、(つまり、コンマの後に来るもの)density:=count/areaの列の1つを参照していることを確認する場合はY、名前の前i.に、の列の1つi、つまりコンマの前にあるものを参照していることがわかるようにします。今後のマージにはビネットがあるはずです。

一般に、「異なるデータセット間で一致する」と考えるとすぐに、本能はマージする必要があります。詳細についてはdata.tableこちらをご覧ください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定の列の値が両方のデータフレームで一致する場合は、あるデータフレームの行を別のデータフレームにコピーします

分類Dev

列名が一致する場合は、データフレームの列値を行に変更します

分類Dev

行、列の値が別の列の任意の場所と一致する場合は、パンダデータフレームの行を削除します

分類Dev

PySpark行が一致する場合、列の値を別のデータフレームの値と等しく設定します

分類Dev

複数の値に一致する場合は、Pandasデータフレームの行を削除します

分類Dev

2つのデータフレームの列名が一致する場合に値を検索します

分類Dev

列の行の値が条件に一致する場合にデータフレームを反復するPythonの方法

分類Dev

1つのデータフレームの複数の列を別のデータフレームの行名の値で除算するR

分類Dev

別のデータフレームで一致する値のみに関連するデータフレームの値を置き換えます

分類Dev

列の値が部分的に一致するデータフレームの行を選択します

分類Dev

列の行の1つが特定の値に一致する場合にデータフレームを返す方法

分類Dev

両方の最初の2つの列が一致する場合、データフレームの1つの列から別のデータフレームの新しい列に値を追加する

分類Dev

別のデータフレームのIDと一致する場合は、n個のデータフレームから値を追加します

分類Dev

データフレームを連結する方法ですが、ID列の値が両方のデータフレームである場合にのみ、IDが一致しない行を削除しますか?

分類Dev

条件が真で特定の列のみを返す場合に、1つのデータフレームの値を条件付きで比較し、2番目のデータフレームの値を一致させる方法は?

分類Dev

別のデータフレームからの値が一致するデータフレームからすべての行を取得します

分類Dev

列と行の名前を別のデータフレームの列と値に一致させる

分類Dev

任意の行の値が別のデータフレームである場合にデータフレームから行を削除します

分類Dev

別の行の値と一致する場合は、データフレームの値を変更します

分類Dev

別のデータフレームの列でIDの一致が見つかった場合、データフレームの1つの列の値を更新する

分類Dev

別のデータフレームの一致するIDに基づいてデータフレーム列の値を置き換えます

分類Dev

インデックスと列が一致しない場合に、別のデータフレームの値でデータフレームを更新する方法

分類Dev

値が別のデータフレームの列の間隔の間にある場合は、データフレームの列を更新します

分類Dev

データフレーム内の一致する数値

分類Dev

一致する文字列が特定の値を超える場合は、パンダのデータフレームから行を削除します

分類Dev

R-別のデータフレームの一致する値を使用して、データフレームに新しい列を追加します

分類Dev

別のデータフレーム内の一致するデータに応じて、データフレーム内の値を更新します

分類Dev

パンダのデータフレームは、別のデータフレームの値と一致することで値を分割します

分類Dev

任意の行の値が別のデータフレームである場合にデータフレームは複数の列を有する、データフレームから行を削除します

Related 関連記事

  1. 1

    特定の列の値が両方のデータフレームで一致する場合は、あるデータフレームの行を別のデータフレームにコピーします

  2. 2

    列名が一致する場合は、データフレームの列値を行に変更します

  3. 3

    行、列の値が別の列の任意の場所と一致する場合は、パンダデータフレームの行を削除します

  4. 4

    PySpark行が一致する場合、列の値を別のデータフレームの値と等しく設定します

  5. 5

    複数の値に一致する場合は、Pandasデータフレームの行を削除します

  6. 6

    2つのデータフレームの列名が一致する場合に値を検索します

  7. 7

    列の行の値が条件に一致する場合にデータフレームを反復するPythonの方法

  8. 8

    1つのデータフレームの複数の列を別のデータフレームの行名の値で除算するR

  9. 9

    別のデータフレームで一致する値のみに関連するデータフレームの値を置き換えます

  10. 10

    列の値が部分的に一致するデータフレームの行を選択します

  11. 11

    列の行の1つが特定の値に一致する場合にデータフレームを返す方法

  12. 12

    両方の最初の2つの列が一致する場合、データフレームの1つの列から別のデータフレームの新しい列に値を追加する

  13. 13

    別のデータフレームのIDと一致する場合は、n個のデータフレームから値を追加します

  14. 14

    データフレームを連結する方法ですが、ID列の値が両方のデータフレームである場合にのみ、IDが一致しない行を削除しますか?

  15. 15

    条件が真で特定の列のみを返す場合に、1つのデータフレームの値を条件付きで比較し、2番目のデータフレームの値を一致させる方法は?

  16. 16

    別のデータフレームからの値が一致するデータフレームからすべての行を取得します

  17. 17

    列と行の名前を別のデータフレームの列と値に一致させる

  18. 18

    任意の行の値が別のデータフレームである場合にデータフレームから行を削除します

  19. 19

    別の行の値と一致する場合は、データフレームの値を変更します

  20. 20

    別のデータフレームの列でIDの一致が見つかった場合、データフレームの1つの列の値を更新する

  21. 21

    別のデータフレームの一致するIDに基づいてデータフレーム列の値を置き換えます

  22. 22

    インデックスと列が一致しない場合に、別のデータフレームの値でデータフレームを更新する方法

  23. 23

    値が別のデータフレームの列の間隔の間にある場合は、データフレームの列を更新します

  24. 24

    データフレーム内の一致する数値

  25. 25

    一致する文字列が特定の値を超える場合は、パンダのデータフレームから行を削除します

  26. 26

    R-別のデータフレームの一致する値を使用して、データフレームに新しい列を追加します

  27. 27

    別のデータフレーム内の一致するデータに応じて、データフレーム内の値を更新します

  28. 28

    パンダのデータフレームは、別のデータフレームの値と一致することで値を分割します

  29. 29

    任意の行の値が別のデータフレームである場合にデータフレームは複数の列を有する、データフレームから行を削除します

ホットタグ

アーカイブ