首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R标记html(tabular())输出转义字符&断续表

R标记html(tabular())输出转义字符&断续表
EN

Stack Overflow用户
提问于 2017-06-09 14:27:16
回答 2查看 579关注 0票数 1

下面是一个代码示例,它将生成我在R Markdown中需要的表:

代码语言:javascript
复制
---
title: "Table"
author: "Nick"
date: "9 June 2017"
output: html_document
---

```{r setup, include=FALSE}

knitr::opts_chunk$set(echo =真)

图书馆(表)

年龄<-样本(0:19,500,替换=真)

未出生<-样本(0:1,500,替换=真)

GenderBand <-示例(1:3,500,替换= TRUE)

EthnicityGroup <-示例(1:5,500,替换= TRUE)

InitialCategory <-示例(1:5,500,替换= TRUE)

数据<- data.frame(年龄,未出生,GenderBand,EthnicityGroup,InitialCategory)

年龄<- 6岁

数据$年龄数据$儿童-3月31日== 0 <- 1

数据$Agedata$儿童313月1日>= 1和数据$儿童313月1日<= 4 <- 2

数据$年龄数据$儿童数据3月31日>= 5和数据$儿童数据31 3月3日<= 9 <- 3

数据$Agedata$儿童31 3月1日>= 10和数据$儿童31 3月1日<= 15 <- 4

数据$年龄数据$儿童数据3月31日>= 16和数据$儿童数据31 3月1日<= 50 <- 5

数据$Age <-因子(数据$Age,

代码语言:javascript
复制
              levels = c(1,2,3,4,5,6),
代码语言:javascript
复制
              labels = c("Under 1",
代码语言:javascript
复制
                         "1 to 4 Years Old",
代码语言:javascript
复制
                         "5 to 9 Years Old",
代码语言:javascript
复制
                         "10 to 15 Years Old",
代码语言:javascript
复制
                         "16 to 50 Years Old",
代码语言:javascript
复制
                         "Other"))

数据$未生成<-因子(数据$Unborn,level= c(0,1),标签=c(Born),"Unborn"))

数据$GenderBand <- factor(数据$GenderBand,level= c(1,2,3),标签=c(“男性”,“女性”,“未知”))

数据$EthnicityGroup <- factor(数据$EthnicityGroup,

代码语言:javascript
复制
                          levels = c(1,2,3,4,5,6), 
代码语言:javascript
复制
                          labels = c("White","Mixed","Asian","Black","Other","Refused"))

数据$InitialCategory <- factor( data$InitialCategory,

代码语言:javascript
复制
                           levels = c(1,2,3,4,5),
代码语言:javascript
复制
                           labels = c("Emotional",
代码语言:javascript
复制
                                      "Multiple",
代码语言:javascript
复制
                                      "Neglect",
代码语言:javascript
复制
                                      "Phyical",
代码语言:javascript
复制
                                      "Sexual"))

表<-表格(GenderBand+(未出生*年龄)+ EthnicityGroup ~ InitialCategory,data=data)

代码语言:javascript
复制
```{r output, echo=FALSE, results="asis"}

html(表)

代码语言:javascript
复制

这是我想要的完美工作方式。给我这个:

然而,当我使用我的真实数据做这件事时,我得到了以下信息:

我已经在HTML中发现了这个问题,似乎出于某种原因,在某些单元格(破碎的单元格)上,html(tablular())输出了以下内容:

我完全不明白为什么它似乎在搅乱HTML输出,因为数字是由R生成的(它们是因素计数)。

理论上,我也许可以将HTML存储在一个变量中,并将gsub()中的违规字符串存储起来,但这似乎是一项杂乱无章的工作,并不是真正需要的事情。有人对此有任何洞察力吗?

EN

回答 2

Stack Overflow用户

发布于 2017-06-09 15:27:18

抱歉,不知羞耻的自动推广,但你可以试试我的包expss

代码语言:javascript
复制
---
title: "Table"
author: "Nick"
date: "9 June 2017"
output: html_document
---

```{r setup, include=FALSE}

knitr::opts_chunk$set(echo =真)

图书馆(费用)

ChildAge31March =示例(0:19,500,替换=真)

Unborn = sample(0:1,500,替换= TRUE)

GenderBand =示例(1:3,500,替换=真)

EthnicityGroup =示例(1:5,500,替换=真)

InitialCategory =示例(1:5,500,替换=真)

data = data.frame(ChildAge31March,Unborn,GenderBand,EthnicityGroup,InitialCategory)

数据=计算(数据,{

代码语言:javascript
复制
Age = recode(ChildAge31March, 
代码语言:javascript
复制
             0 ~ 1, 
代码语言:javascript
复制
             1 %thru% 4 ~ 2,
代码语言:javascript
复制
             5 %thru% 9 ~ 3,
代码语言:javascript
复制
             10 %thru% 15 ~ 4,
代码语言:javascript
复制
             16 %thru% 50 ~ 5,
代码语言:javascript
复制
             other ~ 6
代码语言:javascript
复制
)   
代码语言:javascript
复制
val_lab(Age) = autonum(
代码语言:javascript
复制
    "Under 1
代码语言:javascript
复制
     1 to 4 Years Old
代码语言:javascript
复制
     5 to 9 Years Old
代码语言:javascript
复制
     10 to 15 Years Old
代码语言:javascript
复制
     16 to 50 Years Old
代码语言:javascript
复制
     Other")
代码语言:javascript
复制
val_lab(Unborn) = num_lab(
代码语言:javascript
复制
     "0 Born
代码语言:javascript
复制
      1 Unborn")
代码语言:javascript
复制
val_lab(GenderBand) = autonum(
代码语言:javascript
复制
     "Male
代码语言:javascript
复制
     Female
代码语言:javascript
复制
     Unknown")
代码语言:javascript
复制
val_lab(EthnicityGroup) = autonum(
代码语言:javascript
复制
    "White
代码语言:javascript
复制
     Mixed
代码语言:javascript
复制
     Asian
代码语言:javascript
复制
     Black
代码语言:javascript
复制
     Other
代码语言:javascript
复制
     Refused")
代码语言:javascript
复制
val_lab(InitialCategory) = autonum(
代码语言:javascript
复制
    "Emotional
代码语言:javascript
复制
     Multiple
代码语言:javascript
复制
     Neglect
代码语言:javascript
复制
     Phyical
代码语言:javascript
复制
     Sexual" )

})

表=数据%>%

代码语言:javascript
复制
tab_cols(InitialCategory) %>% 
代码语言:javascript
复制
tab_cells(GenderBand, Unborn %nest% Age, EthnicityGroup) %>% 
代码语言:javascript
复制
tab_stat_cases(total_row_position = "none") %>% 
代码语言:javascript
复制
tab_pivot()
代码语言:javascript
复制
```{r output, echo=FALSE, results="asis"}

表格

代码语言:javascript
复制

票数 0
EN

Stack Overflow用户

发布于 2018-05-30 17:20:38

有点晚了,但我也遇到了同样的问题,最近我弄明白了到底发生了什么。当R输出我的表时,它在汇总数据的每个单元格周围加上引号:

代码语言:javascript
复制
Stratified by Group
                                  1                 2                 3           
n                                 "   676"          "  1378"          " 27245"         
DON_AGE (mean (sd))               " 41.24 (12.76)"  " 36.92 (11.03)"  " 39.89 (17.70)" 
DON_LF_LU_BRONCHO (%)             "   "             "  "              " "            " 
     Abnormal                     "     8 ( 1.2) "  "    15 ( 1.1) "  "  2258 ( 8.3) "  
     Missing                      "   631 (93.3) "  "  1333 (96.7) "  " 19343 (71.0) "  
     Normal                       "    37 ( 5.5) "  "    30 ( 2.2) "  "  5644 (20.7) "

当我试图使用HTML在read中运行时,有额外空格的单元格被读取为原始HTML代码(例如,上面第1组中的异常单元格),这就是为什么我在我的表中获取代码的原因。

我使用了CreateTableOne函数,为了解决这个问题,我在print(CreateTableOne())中使用了noSpaces=T选项。然后,我使用htmlTable打印table对象,这解决了我的问题。

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

https://stackoverflow.com/questions/44460359

复制
相关文章

相似问题

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