如何用r实现excel透视表功能

如题所述

Excel数据透视表是一种数据汇总手段,如果表格内的数据太多,单靠肉眼是很难准确分辨数据的,而使用数据透视表,就可以很方便的筛选各种数据。可以用在记录数量众多、以流水帐形式记录、结构复杂的工作表。

用R实现数据的透视功能可以使用reshape2包中的melt()函数和dcast()函数,具体操作如下。

1、首先我们需要准备好一个需要做成透视功能表的数据集,如下数据集b。



2、假设希望统计以V1分组,每一组的V4变量各指标的计数,在Excel的透视表里我们需要这样做,如下图列为v4。




3、行标签为v1得到值1,2,3,数字项是列v4中的数值,excel表格中用拖拽行列的方式透视数据这里用赋值。




4、而在R中要达到同样效果需要输出Data.frame格式,dcast函数需要载入reshape2包,如下图1-3行代码,下图4-5行为透视后数据效果。



参考资料来源:百度百科-数据透视表

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-11

用R实现数据的透视功能可以使用reshape2包中的melt()函数和dcast()函数,具体操作如下。

1、首先我们需要准备好一个需要做成透视功能表的数据集,如下数据集b。

2、假设希望统计以V1分组,每一组的V4变量各指标的计数,在Excel的透视表里我们需要这样做,如下图列为v4。

3、行标签为v1得到值1,2,3,数字项是列v4中的数值,excel表格中用拖拽行列的方式透视数据这里用赋值。

4、而在R中要达到同样效果需要输出Data.frame格式,dcast函数需要载入reshape2包,如下图1-3行代码,下图4-5行为透视后数据效果。

本回答被网友采纳
第2个回答  推荐于2019-08-28
最好先把data里的数据从char转成numeric,不带引号。
然后先弄个目标矩阵,每个位置暂时预设成0
>final<-matrix(0,12,19) #12行 19列
写个循环:
>for(i in 1:nrow(data)){ # nrow是看你的data里有多少行
> final[data[i,1],data[i,2]]<-data[i,3] #final的x坐标是data的第一列,y坐标是第二列
>}

>final<-rbind(final,colSums(final)) #最后一行是总计
>rownames(final)<- 。。。 #自己起名字
>colnames(final)<- 。。。本回答被提问者采纳
相似回答