gpt4 book ai didi

r - 桶中的数据分类

转载 作者:行者123 更新时间:2023-12-04 20:00:15 24 4
gpt4 key购买 nike

我有一个名为 Data 的数据框,它包含以下元素:

Model  Garage  City  Unit.Price Invoice.Date  Components    
Hyundai A NY 500 31/12/2016 HL
Honda B NJ 700 31/12/2016 TL
Porsche A NY 800 30/12/2016 TL
BMW B NJ 800 30/12/2016 HL
BMW A NJ 700 31/12/2016 HL
Porsche B NY 800 30/12/2016 TL
Honda A NY 400 30/12/2016 TL
Honda A NY 500 30/12/2016 HL
Honda B NY 600 30/12/2016 HL
Honda A NY 200 29/12/2016 TL
Honda A NY 300 29/12/2016 HL

我希望按 Invoice.Date 对分解成汽车的数据的输出进行排序,以便首先捕获当前成本。

Ex:Honda

Components GarageA GarageB
HL 500 600
TL 400 700

我是这样开始的:

Category <- as.data.frame(c("BMW","Honda","Porsche","Hyundai"))

for(i in 1:nrow(Category))
{
m <- Category[i,1]
X <- subset(Data,Model==m)
X <- Data[order(Data$Invoice.Date,decreasing = T),]
Pivot_A<-dcast(X,Name~Garage,value.var = "Unit.Price",function(x) length((x)))
write.csv(Pivot,file = paste(X,"Cars.csv",sep = "_"))
}

我遇到的唯一问题是映射正确的单价。是否有任何代码或函数可以使用 dcast 执行此操作? dcastsumcount选项。如果我想要确切的数量而不是sumaverage,该怎么办。

最佳答案

您可以通过以下方式做到这一点:

require(tidyverse) # dplyr would be enough...
dat %>%
mutate(Invoice.Date = as.Date(Invoice.Date, "%d/%m/%Y")) %>%
group_by(Model, Garage, Components) %>%
summarise(Unit.Price = first(Unit.Price, order_by = Invoice.Date)) %>%
spread(Garage, Unit.Price, sep = "")

这给了你:

    Model Components GarageA GarageB
* <chr> <chr> <int> <int>
1 BMW HL 700 800
2 Honda HL 300 600
3 Honda TL 200 700
4 Hyundai HL 500 NA
5 Porsche TL 800 800

现在我不确定如何解释您问题中的broken into cars。您可以将 (%>%) 以上内容通过管道传输到

  • split(.$Model) 以获得一个列表,其中每个列表元素代表一个 Model
  • nest(-Model) 获取嵌套的 tibble...

关于r - 桶中的数据分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41408441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com