我有一个包含价格和材料列的数据框,以及一个包含 N 列的真/假矩阵(每列是一种特定类型的材料),并且 T/F 值表示“材料”字符串是否出现在数据矩阵中
数据
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
...ETC。
如何根据材料创建价格子集?所以我可以计算具有“金属”材料的价格的平均值、范围模式等。
我最初的解决方案是将
newMat<- data$price * materialmatrix.
然后在 newMat 上执行列操作(平均值、分位数等)
但这似乎是一种残酷的做事方式,因为我想结合子集(例如金属和棉花的平均价格)。
我也试过
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
, and subset
,但我对 R 的理解还不够强,无法执行。
我知道这可能很简单,但我一直坚持如何使用矩阵来创建多个子集,而不是一次创建一个子集。
任何帮助都会很棒。
我看过以下