Price 列と Material 列を含むデータ フレームと、N 列 (各列は特定の種類の材料) を含む true/false マトリックスがあり、T/F 値は、「material」文字列がデータ マトリックスに表示されるかどうかを示します。
データ
Price Material
2.33 Metal nickel linen cotton
3.45 silver emerald steel
7.45 cotton silk wood
マトリックス
Metal Nickel Linen Cotton Silver Emerald Steel Cotton Silk Wood
T T T T 0 0 0 0 0 0
0 0 0 0 T T T 0 0 0
...等。
材料に基づいて価格のサブセットを作成するにはどうすればよいですか? そのため、材料が「金属」である価格の平均、範囲モードなどを計算できます。
私の最初の解決策は、
newMat<- data$price * materialmatrix.
次に、newMat で列操作を実行します (平均値、分位数など)。
しかし、これは残忍な方法のように思えます。なぜなら、サブセットを結合したいからです (たとえば、Metal && Cotton のあるものの平均価格など)。
私も試しました
split(data, wsearch, drop=TRUE)
しかし、警告を受けました。
Warning message:
In split.default(x = seq_len(nrow(x)), f = f, drop = drop, ...)
data length is not a multiple of split variable
lapply
、split
、ddply
、およびを使用しようとしましsubset
たが、R についての私の理解は実行するのに十分ではありません。
これはおそらく非常に単純なことですが、一度に 1 つのサブセットを作成するのではなく、マトリックスを使用して複数のサブセットを作成する方法に固執しています。
どんな助けでも素晴らしいでしょう。
私は以下を見てきました