首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:是否可以将针织品::kable转换成dataframe?

R:是否可以将针织品::kable转换成dataframe?
EN

Stack Overflow用户
提问于 2021-09-16 15:28:58
回答 1查看 1.4K关注 0票数 1

我正在使用来自pivot包的lessR函数,创建一个类似Excel的枢轴表,其中包含两个构成垂直和水平类别的分类变量,以及每个单元格中的平均值。(希望这是合理的)。

我遵循了文档(https://cran.r-project.org/web/packages/lessR/vignettes/pivot.html)给出的代码。让我们以他们为榜样:

代码语言:javascript
复制
d <- Read("Employee")
a <- pivot(d, mean, Salary, Dept, Gender)

数据d如下所示:

代码语言:javascript
复制
                    Years Gender Dept    Salary JobSat Plan Pre Post
Ritchie, Darnell        7      M ADMN  53788.26    med    1  82   92
Wu, James              NA      M SALE  94494.58    low    1  62   74
Hoang, Binh            15      M SALE 111074.86    low    3  96   97
Jones, Alissa           5      F <NA>  53772.58   <NA>    1  65   62
Downs, Deborah          7      F FINC  57139.90   high    2  90   86
Afshari, Anbar          6      F ADMN  69441.93   high    2 100  100
Knox, Michael          18      M MKTG  99062.66    med    3  81   84
Campagna, Justin        8      M SALE  72321.36    low    1  76   84
Kimball, Claire         8      F MKTG  61356.69   high    2  93   92

可枢轴的a是一个很好的表,正如我希望它在单元格内容等方面所显示的那样,它似乎是一个knitr_kable。

代码语言:javascript
复制
 Gender  F          M               
 Dept                        
-------  ---------  ---------
   ACCT   63237.16   59626.20
   ADMN   81434.00   80963.35
   FINC   57139.90   72967.60
   MKTG   64496.02   99062.66
   SALE   64188.25   86150.97

接下来,我想利用这一点制作一个数据,以便在代码中更容易地操作,并将其复制到剪贴板上。但是,我不知道如何将knitr_kable转换为数据格式。下面是我的代码及其导致的错误:

代码语言:javascript
复制
as.data.frame(a)

Error in as.data.frame.default(a) : 
  cannot coerce class ‘"knitr_kable"’ to a data.frame

针织品文档没有提到任何关于这种转换的内容--它只是关于将数据文件转换为knitr_kable,这与我想要的正好相反。

我也尝试过pivottabler,但这也存在类似的问题:也不能强迫生成的类强制使用dataframe。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-16 15:40:39

以下是两个潜在的答案:

最直接的方法是:自己争论数据。

如果您对tidyverse-style方法持开放态度,那么只需几行代码就可以完成争论和总结。这将为您提供一个可以立即使用的datatable输出。

代码语言:javascript
复制
# load packages
library(lessR)
library(dplyr)
library(tidyr)

# load data
d <- Read("Employee")

# use tidyverse-style code to pivot and summarise the data yourself
d %>%
  group_by(Gender, Dept) %>%
  summarise(Salary_mean = mean(Salary)) %>%
  pivot_wider(names_from= "Gender", values_from = "Salary_mean")

将针织品::kable()标记输出读入数据帧

如果您希望从knitr::kable()输出反向工作到dataframe,这将在以下问题中得到解决:Markdown table to data frame in R

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69211247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档