我有一个数据框,显示 2000 年到 2020 年每个国家/地区的汽车销售数量。我希望将每年的销售额除以每个国家 2000 年的原始销售额。我该怎么做?
有一个可重现的例子供我们使用是最有帮助的:How to make a great R reproducible example
假设您的数据类似于:
> car_sales <- data.frame(
"country" = c("France", "France", "Germany", "Germany"),
"year" = c(2000, 2001, 2000, 2001),
"sales" = c(100, 150, 100, 75))
然后你可以使用data.table快速除以今年2000的数字:
> car_sales <- as.data.table(car_sales)
> setorder(car_sales, "country", "year")
> car_sales[,sales_over_2000_sales:=sales/sales[1], by = country]
> car_sales
country year sales sales_over_2000_sales
1: France 2000 100 1.00
2: France 2001 150 1.50
3: Germany 2000 100 1.00
4: Germany 2001 75 0.75
在 tidyverse 中:
car_sales %>%
group_by(country) %>%
mutate(divided_by_2000_sales = sales / sales[[1]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句