R中有两个x变量的mschart

R中有两个x变量的mschart,r,ggplot2,mschart,R,Ggplot2,Mschart,我需要将具有两个x变量的ggplot转换为mschart,以便在Word中使用它。我曾经在Excel中制作过这些,但是我们正在使用R来获取统计数据。以下是ggplot2中的内容: 在ggplot2中,我只是将x变量作为交互('Gender','JO_Type')传递。当我尝试将其传递给mschart时,它返回以下错误消息: %名称(数据)中的x%不正确 我曾尝试将数据转换为数组和向量,但没有成功。我甚至不确定mscharts能否处理二维x参数 数据: 代码: 库(tidyverse) 图书馆(

我需要将具有两个x变量的ggplot转换为mschart,以便在Word中使用它。我曾经在Excel中制作过这些,但是我们正在使用R来获取统计数据。以下是ggplot2中的内容:

在ggplot2中,我只是将x变量作为
交互('Gender','JO_Type')
传递。当我尝试将其传递给mschart时,它返回以下错误消息:

%名称(数据)中的x%不正确

我曾尝试将数据转换为数组和向量,但没有成功。我甚至不确定mscharts能否处理二维x参数

数据:

代码:

库(tidyverse)
图书馆(magrittr)
图书馆(mschart)
图书馆(主任)
#性别_类别_JOType的数据
打印(性别\类别\字体)
#ggplot函数

myBarChart_3请添加您的代码和a。感谢您的查看-非常感谢!我将把它添加到我的第一篇文章中,因为这些评论有字符限制。你的例子是不可复制的。请添加必要的变量调用,并在发布前尝试在空环境中运行示例(例如,您提供的数据中没有性别\类别\类型的定义)。好的,添加了我希望有效的代码。在干净的环境中检查。我认为我缺乏经验在这里表现得很糟糕。希望我能参加一个导师指导的课程,而不是在LinkedIn学习上学习R。。。这很好,但有些事情比视频所涵盖的还要多。感谢您的帮助。请添加您的代码和。感谢您的查看-非常感谢!我将把它添加到我的第一篇文章中,因为这些评论有字符限制。你的例子是不可复制的。请添加必要的变量调用,并在发布前尝试在空环境中运行示例(例如,您提供的数据中没有性别\类别\类型的定义)。好的,添加了我希望有效的代码。在干净的环境中检查。我认为我缺乏经验在这里表现得很糟糕。希望我能参加一个导师指导的课程,而不是在LinkedIn学习上学习R。。。这很好,但有些事情比视频所涵盖的还要多。谢谢你的帮助。
gender_category_JOType = structure(list(JO_Type = c("Standard"  ,"Standard","Standard","Standard","Standard","Standard","Standard","Standard","Continuous","Continuous","Continuous","Continuous","Continuous","Continuous","Continuous","Continuous"), 
               Category = c("FS","FS","P1-P4","P1-P4","P5-P6","P5-P6","D1","D1","FS","FS","P1-P4","P1-P4","P5-P6","P5-P6","D1","D1"), 
               Gender = c("Female","Male","Female","Male","Female","Male","Female","Male","Female","Male","Female","Male","Female","Male","Female","Male"), 
               count = c(76,144,668,697,173,305,61,110,514,1214,264,504,46,130,18,41),
               percentage=c("34.5%","65.5%","48.9%","51.1%","36.2%","63.8%","35.7%","64.3%","29.7%","70.3%","34.4%","65.6%","26.1%","73.9%","30.5%","69.5%")), row.names = c(1:16), class = "data.frame")

library(tidyverse)
library(magrittr)
library(mschart)
library(officer)
# the data for gender_category_JOType

print(gender_category_JOType)

# ggplot function

myBarChart_3 <- function(data,var1,var2,var3,count,title,xLabel,yLabel){
  ggplot(data, 
         aes_string(x=var1, y=count, fill=var2)) +
    ggtitle(title) +
    geom_bar(stat = 'identity',width=1.15,
             position = position_dodge2(padding=0.15, reverse=FALSE, preserve=c("single"))) +
    geom_text(aes(label=count),
              vjust=-.5, position=position_dodge2(width=1.15), size=2.5) +
    scale_y_continuous(sec.axis=waiver(),
                       expand = expansion(mult = c(0,0.05))) +
    facet_wrap(var3, nrow=1,strip.position="bottom",scales = "free_x")  +
    xlab(xLabel) +
    ylab(yLabel) 
}

myBarChart_3(gender_category_JOType, interaction('Gender','JO_Type'), 'Category',
             c('JO_Type','Gender'), 'count', "Category, Gender, and JO Type", 
             "level", "total")# +
  #geom_text(aes(label = percentage), vjust=-1.75, hjust='center', 
  #          position=position_dodge2(width=1.15), size=2.5)

# the msbarchart version
# add the chart to an existing Word doc

gen_docx <- function(chart,file,file2){
  doc <- read_docx()
  doc <- body_add_par(doc, " ", style = "Normal", pos = "after")
  doc <- body_add_chart(doc, chart = chart, style = "Normal", pos="after")
  doc <- body_add_break(doc, pos="after")
  doc <- body_add_par(doc, " ", style = "Normal", pos = "after")
  doc <- body_add_par(doc, " ", style = "Normal", pos = "after")
  doc <- body_add_docx(doc, src = file2, pos = "before")
  doc <- print(doc, target = file)
}

# create the chart function

my_msbarchart_doc <- function(srcFile, docName, chartName, data, var, count, 
                              grouping, title, xLabel, yLabel){
  chartName <- ms_barchart(data, x = var, y = count, group = grouping) %>%
    chart_labels(title = title, xlab = xLabel, ylab = yLabel)
  chartName <- chart_data_labels(chartName, position="outEnd", show_val = T)
  doc <- gen_docx(chartName, paste0(docName,".docx"), paste0(srcFile,".docx"))
}

# create the chart

lion <- my_msbarchart_doc("myDocument2", "myDocument3", lion, gender_category_JOType,
                          interaction('Gender','JO_Type'), "count", "Category", 
                          "Category, JO Type, and Gender", "Gender and JO Type","count")

# error msg caused by the interaction that works in the ggplot but not in mschart:   x %in% names(data) is not TRUE