我正在尝试使用do {
// .......
echo $row['content'];
echo time_elapsed_string($row['post_date']);
// .......
} while ($row = $sql->fetch_array());
软件包制作数据透视表。我想将数据透视表对象转换为数据框,以便可以将其转换为数据表(使用DT)并在Shiny应用程序中呈现,以便可以下载。
pivottabler
我试图将其转换为矩阵
library(pivottabler)
pt = qpvt(mtcars, 'cyl', 'vs', 'n()')
我收到如下错误消息:
as.data.frame(pt)
有人知道如何将数据透视表对象转换为数据框吗?
答案 0 :(得分:1)
这是一个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,
...
因此,在R6对象上应用asDataFrame()
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"