【发布时间】:2017-11-02 13:05:33
【问题描述】:
我们的业务用户希望我们创建分析背后的数据导出。 AVP 想知道我们是否可以对数据进行切片,以便用户可以按照他们想要的任何方式过滤数据。 Excel 切片器由数据透视表支持,因此我必须能够首先在 Excel 工作簿中创建数据透视表。
我可以轻松地将数据从 R 导出到 Excel。我似乎找不到支持创建数据透视表或切片器的 R 包。这样的包存在吗?或者这只是超出了目前任何可用软件包的范围?
【问题讨论】:
我们的业务用户希望我们创建分析背后的数据导出。 AVP 想知道我们是否可以对数据进行切片,以便用户可以按照他们想要的任何方式过滤数据。 Excel 切片器由数据透视表支持,因此我必须能够首先在 Excel 工作簿中创建数据透视表。
我可以轻松地将数据从 R 导出到 Excel。我似乎找不到支持创建数据透视表或切片器的 R 包。这样的包存在吗?或者这只是超出了目前任何可用软件包的范围?
【问题讨论】:
这是一个老问题,但万一有人来到这里仍然需要核心问题的答案:
我可以轻松地将数据从 R 导出到 Excel。我似乎找不到支持创建数据透视表或切片器 [在 Excel 中] 的 R 包。有这样的包吗?
是的,感谢 Chris Bailiss。查看包pivottabler,还有一个很棒的小插图演练here。
【讨论】:
R 中提供这些功能的包很少。我建议你使用 rpivotTable 和 dplyr。这是我经常使用的两个包。
你可以详细研究这些。
https://cran.r-project.org/web/packages/rpivotTable/rpivotTable.pdf
【讨论】:
嗨,迈克,我创建了一个数据集,看看如何使用 reshape 包生成枢轴。这可以下载为 excel/csv。希望对你有帮助
ID<-c(2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023)
type<-c('Spices','Spices','Fruit','Fruit','Fruit','Spices','Spices','Spices','Spices','Spices','Fruit','Fruit','Spices','Fruit','Fruit','Fruit','Fruit','Spices','Fruit','Fruit')
state<-c('New Jersey','New Jersey','New Jersey','New Jersey','New Jersey','New Jersey','Florida','Michigan','Michigan','New Jersey','New Jersey','New Jersey','New Jersey','New Jersey','New Jersey','Florida','Michigan',
'Michigan','Florida','Florida')
price<-c (1442,639,71,22,1185,508,434,24,528,8,41,82,2994,385,545,1850,2966,31,536,42)
data=data.frame(ID,type,state,price)
library(reshape)
data.m=melt(data, id=c(1:4), measure=c(4))
df1 <-cast(data.m, ID~type+value, sum)
#for adding grand total
df2<- cast(data.m, ID~type+value, sum, margins=c("grand_row"))
#for adding filter
df3 <- cast(data.m, ID~type+value, sum, margins=c("grand_row"),subset=state=="Florida")
df1、df2 和 df3 是枢轴。
【讨论】: