如何通过降低列$vehicle = Vehicle::with('customer')->find($id);
中值的顺序来排列数据框,其中value
列中的值
离。数据框
"cat"=X
离。重新排列数据框(我想看):
我在this article上查看第一个答案后尝试了df1<-data.frame(group=rep(c("A", "B", "C", "D"),each=2), cat=rep(c("X", "Y"),4), value=c(1,0.6,1,0.5,1,2,1,5))
,但它没有用,结果如下:
正如您所看到的,这两个表看起来不同。我也尝试从df1[with(df1, order(-value, cat)),]
包中安排命令,但每个结果都与上面的结果类似。
谢谢
答案 0 :(得分:1)
由于value
的{{1}}始终相同,我们可以将cat'x'
与value
相加,然后使用它来对数据进行排序。
group
或另一种(可能更好的)方式涉及指定因子水平。它们默认按字母顺序设置,但您可以根据# Create data.frame
df1<-data.frame(group=rep(c("A", "B", "C", "D"),each=2),
cat=rep(c("X", "Y"),4),
value=c(1,0.6,1,0.5,1,2,1,5))
# Sum values by group (since x is same...)
df2 <- aggregate(df1$value, by=list(group=df1$group), FUN=sum)
# Join tables
library(plyr)
output <- join(df1, df2, by='group', type='left', match='all')
# Sort
output <- output[with(output, order(-x, cat)),]
value