将行转换为列时出现tidyr错误

将行转换为列时出现tidyr错误,r,tidyr,R,Tidyr,我想将行转换为列,以返回每个模式的平均成本。我试图使用pivot_函数,但它给出了以下错误。 错误:此tidyselect接口尚不支持谓词。 我与软件包作者联系,建议使用eval\u select() 我尝试更新软件包,但问题仍然存在。除了pivot_更广泛之外,还有其他方法可以达到预期的效果吗? 我的数据帧prcostdata如下所示 S447.1 cost Car 100 Government Ambulance 50 Jeep

我想将行转换为列,以返回每个模式的平均成本。我试图使用pivot_函数,但它给出了以下错误。 错误:此tidyselect接口尚不支持谓词。 我与软件包作者联系,建议使用
eval\u select()

我尝试更新软件包,但问题仍然存在。除了pivot_更广泛之外,还有其他方法可以达到预期的效果吗? 我的数据帧
prcostdata
如下所示

S447.1               cost
Car                  100
Government Ambulance 50
Jeep                 600
Scooter              800
Government Ambulance 100
Car                  200
Jeep                 1500
Scooter              750
期望输出

Government Ambulance  Car  Jeep  Scooter
75                    150  1050  775
这是我的密码

library(dplyr)
library(tidyr)
trans <- c("Government Ambulance","Car","Jeep","Scooter")
prcostmode<-prcostdata %>% 
  arrange(match(S447.1, trans)) %>%
  pivot_wider(names_from = S447.1, values_from = mean)
库(dplyr)
图书馆(tidyr)
反式%
枢轴宽度(名称=S447.1,值=平均值)

像这样使用
tidyr

df%>%
枢轴(名称取自=“S447.1”,值取自=“成本”,值取自=平均值)
返回

#一个tible:1 x 4
政府救护车吉普车
1   150                   75  1050     775

资料 结构(列表(S447.1=c(“汽车”、“政府救护车”、“吉普车”), “滑板车”、“政府救护车”、“汽车”、“吉普车”、“滑板车”), 成本=c(100,50,600,800,100,200,1500,750)),等级=c(“规格待定”, “tbl_df”,“tbl”,“data.frame”),row.names=c(NA,-8L),spec=structure(list( cols=list(S447.1=structure(list(),class=c)(“收集器字符”, “收集器”)),成本=结构(列表(),类=c(“收集器”, “收集器”)),默认值=结构(list(),class=c(“收集器”, “收集器”)),跳过=1),class=“col_spec”))
像这样使用
tidyr

df%>%
枢轴(名称取自=“S447.1”,值取自=“成本”,值取自=平均值)
返回

#一个tible:1 x 4
政府救护车吉普车
1   150                   75  1050     775

资料 结构(列表(S447.1=c(“汽车”、“政府救护车”、“吉普车”), “滑板车”、“政府救护车”、“汽车”、“吉普车”、“滑板车”), 成本=c(100,50,600,800,100,200,1500,750)),等级=c(“规格待定”, “tbl_df”,“tbl”,“data.frame”),row.names=c(NA,-8L),spec=structure(list( cols=list(S447.1=structure(list(),class=c)(“收集器字符”, “收集器”)),成本=结构(列表(),类=c(“收集器”, “收集器”)),默认值=结构(list(),class=c(“收集器”, “收集器”)),跳过=1),class=“col_spec”)) 数据表解决方案:

setDT(df)
dcast(df, .~S447.1, fun = mean, value.var = "cost")
数据表解决方案:

setDT(df)
dcast(df, .~S447.1, fun = mean, value.var = "cost")

我得到以下错误。值中存在错误。\u fn[[value]]:类型为“closure”的对象不可再附加。您使用的是哪个版本的
tidyr
?也许你必须更新你的软件包。我得到以下错误。值中存在错误。\u fn[[value]]:类型为“closure”的对象不可再附加。您使用的是哪个版本的
tidyr
?也许你必须更新你的软件包。不错,但是
sum
应该是
mean
。不错,但是
sum
应该是
mean