我正试着用pivottabler包做一个枢轴表。我希望将透视表对象转换为dataframe,这样我就可以将它转换为数据表(使用DT),并在闪亮的应用程序中呈现它,这样它就可以下载。
library(pivottabler)
pt = qpvt(mtcars, 'cyl', 'vs', 'n()')我试着把它转换成矩阵
as.data.frame(pt)我收到了如下错误消息:
Error in as.data.frame.default(pt) : cannot coerce class ‘c("PivotTable", "R6")’ to a data.frame有谁知道如何将透视表对象转换为dataframe?
发布于 2019-06-01 20:45:04
这是一个R6类。一种选择是使用asDataFrame提取,如果我们检查str,就可以显示出来。
str(pt)
#...
#...
#asDataFrame: function (separator = " ", stringsAsFactors = default.stringsAsFactors())
#asJSON: function ()
#asList: function ()
#asMatrix: function (includeHeaders = TRUE, repeatHeaders = FALSE, rawValue = FALSE)
#asTidyDataFrame: function (includeGroupCaptions = TRUE, includeGroupValues = TRUE,
...因此,将asDataFrame()应用于R6对象
out <- pt$asDataFrame()
out
# 0 1 Total
#4 1 10 11
#6 3 4 7
#8 14 NA 14
#Total 18 14 32
str(out)
#'data.frame': 4 obs. of 3 variables:
#$ 0 : int 1 3 14 18
#$ 1 : int 10 4 NA 14
#$ Total: int 11 7 14 32或者得到一个matrix,asMatrix
pt$asMatrix()
# [,1] [,2] [,3] [,4]
#[1,] "" "0" "1" "Total"
#[2,] "4" "1" "10" "11"
#[3,] "6" "3" "4" "7"
#[4,] "8" "14" "" "14"
#[5,] "Total" "18" "14" "32" https://stackoverflow.com/questions/56410154
复制相似问题