【发布时间】:2022-07-18 21:30:00
【问题描述】:
我有一个数据框:
df <- data.frame(resource = c("gold", "gold", "gold", "silver", "silver", "gold", "silver", "bronze"), amount = c(500, 2000, 4, 8, 100, 2000, 3, 5), unit = c("g", "g", "kg", "ton", "kg", "g", "ton", "kg"), price = c(10, 10, 10000, 50000, 50, 10, 50000, 20))
我想计算每个资源的总价值,同时将不同的唯一单位和价格保持为新变量。 结果应该是这样的
resource value price1 unit1 price2 unit2
bronze 100 20 kg NA NA
gold 85000 10 g 10000 kg
silver 555000 50000 ton 50 kg
前两列是结果
df %>% group_by(resource) %>% summarize(value = sum(amount * price))
但我不知道如何保留其他列
【问题讨论】:
-
你真正想做什么?随着数据的扩展,输出中的列数将会增加。并且没有明显的顺序将行映射到列。也许您更愿意让您的原始表格按资源排序?