有没有办法自动将R中的列与其名称相乘?
我有一个这样的数据集。
> dataset
| ID | 一种 | 乙 | C | d |
|---|---|---|---|---|
| 1 | 10 | 1 | 30 | 50 |
| 2 | 5 | 0 | 5 | 60 |
| 3 | 20 | 1 | 18 | 90 |
| 4 | 103 | 0 | 20 | 80 |
| 5 | 16 | 1 | 56 | 100 |
回答
这似乎是在进行一些建模,选择:代表产品是非常有趣的,因为建模世界中经常出现这种情况。在基础 R 中,您可以执行以下操作:
model.matrix(reformulate(c(-1,rownames(Features))), dataset)
a b d a:d b:d b:c a:c
1 10 1 50 500 50 30 300
2 5 0 60 300 0 0 25
3 20 1 90 1800 90 18 360
4 103 0 80 8240 0 0 2060
5 16 1 100 1600 100 56 896
我添加-1是为了删除拦截。否则你可以维护它。另请注意,这是一个矩阵,然后您可以将其更改为数据框。