我是一名 Excel 用户,试图将我的一些日常数据报告任务转换为 R。Excel 中最强大的功能之一是能够对数据进行透视和排序。我知道这些函数也是 R 中的特性,但我不确定如何编写代码来解决这个特定的分组和排序问题。
基本上,使用 RI 需要一个如下所示的数据集:
并将其转换为如下所示:
请注意,决赛桌按团队对分数进行分组,然后按得分对汇总数据进行排序。学习如何在 R 中执行此操作将节省大量时间。
提前感谢您的帮助!
我是一名 Excel 用户,试图将我的一些日常数据报告任务转换为 R。Excel 中最强大的功能之一是能够对数据进行透视和排序。我知道这些函数也是 R 中的特性,但我不确定如何编写代码来解决这个特定的分组和排序问题。
基本上,使用 RI 需要一个如下所示的数据集:
并将其转换为如下所示:
请注意,决赛桌按团队对分数进行分组,然后按得分对汇总数据进行排序。学习如何在 R 中执行此操作将节省大量时间。
提前感谢您的帮助!
你将需要的两个函数......一旦你有一个例子......是xtabs
和ftable
。首先,我们将现有表转换为数据框,然后注意计数现在位于名为“Freq”的变量中。然后我们重新制表到更少的维度:
> Tdf <- as.data.frame(Titanic, stringsAsFactors=FALSE)
> str(Tdf)
'data.frame': 32 obs. of 6 variables:
$ Class : chr "1st" "2nd" "3rd" "Crew" ...
$ Sex : chr "Male" "Male" "Male" "Male" ...
$ Age : chr "Child" "Child" "Child" "Child" ...
$ Survived: chr "No" "No" "No" "No" ...
$ Freq : num 0 0 35 0 0 0 17 0 118 154 ...
> ftable( xtabs(Freq ~ Class+Sex, Tdf) , row.vars=c("Class", "Sex") )
Class Sex
1st Female 145
Male 180
2nd Female 106
Male 179
3rd Female 196
Male 510
Crew Female 23
Male 862
我没有得到很多积分,但我曾经演示过如何进行小计和总计:
首先,欢迎来到 R 和 SO。如果您遵循此处发布问题的指南,您会发现您会得到更好的答案:
您可以通过多种方式完成您的要求。
首先,您需要对sum
由c(Team,Player)
. 有几种方法可以做到这一点:
by
在基础 R 中,加上as.data.frame.by
在taRifx
包中ddply
在plyr
包装中然后获取结果输出并对其进行排序(同样,有很多方法可以做到这一点):
sort
在taRifx
包装中arrange
在plyr
包装中由于听起来您会经常这样做,因此我强烈建议您创建自己的函数,该函数以您想要的方式自动执行这两个步骤。然后,您可以将该功能放在您的.Rprofile
或包中,以便它始终可用。