如何防止 R Expss 在输出数据框中将变量名称与行标签混合?

Posted

技术标签:

【中文标题】如何防止 R Expss 在输出数据框中将变量名称与行标签混合?【英文标题】:How to prevent R Expss from mixing variable name with row label in output data frame? 【发布时间】:2019-06-28 15:14:30 【问题描述】:

当使用 Expss 包运行表格时,变量标签会​​与数据框中的每一行混合(表格作为数据框输出)。请参阅下面的代码。您会注意到每个行标签前面都有变量标签“性别”和一个条形 |特点。如何预防?

#Required packages
library(magrittr)
require("ggplot2") 
library(expss)

#Create dataframe
gen<-c("Male","Male","Female","Female")
data<-data.frame(gen)
names(data)<-"Q1"

#Apply var label
data = apply_labels(data,
Q1 = "Gender")

#Tabulate
tarb<-data %>%
tab_cells(Q1) %>%
tab_stat_cpct() %>%
tab_pivot()

#View table
tarb

#Check what is in the row_labels column - notice gender | prepended 

tarb$row_labels

【问题讨论】:

【参考方案1】:

此行为是设计使然。如果您需要在单独的列中使用变量标签,您可以使用split_columns 函数:

library(expss)

#Create dataframe
gen<-c("Male","Male","Female","Female")
data<-data.frame(gen)
names(data)<-"Q1"

#Apply var label
data = apply_labels(data,
                    Q1 = "Gender")

#Tabulate
tarb<-data %>%
    tab_cells(Q1) %>%
    tab_stat_cpct() %>%
    tab_pivot()


tarb = split_columns(tarb)
tarb
#                        #Total
# 1 Gender       Female     50
# 2                Male     50
# 3        #Total cases      4

【讨论】:

不幸的是,命令“split_columns(tarb)”似乎并没有改变它。请使用 tarb$row_labels 或使用 R Commander 数据编辑器等查看器进行检查。 @CK7 tarb = split_columns(tarb); str(tarb) - 为我工作。拆分后没有row_labels列。 请粘贴到答案框中,因为 *** 不允许我以评论的形式将您的回复标记为已回答/已解决。 @GregoryDe​​min 这个解决方案对这样的表格没有帮助:htmlTable(mpg %&gt;% tab_rows(model %nest% class, total()) %&gt;% tab_cols(fl)%&gt;%tab_stat_sum()%&gt;%tab_pivot()) 如何删除文本“cell var”和“Sum”? @Ben 您需要将标签添加到tab_sum 并使用tab_cells 为sum 指定单元格变量:htmlTable(mpg %&gt;% tab_rows(model %nest% class, total()) %&gt;% tab_cells(???) %&gt;% tab_cols(fl)%&gt;%tab_stat_sum(label = "")%&gt;%tab_pivot())

以上是关于如何防止 R Expss 在输出数据框中将变量名称与行标签混合?的主要内容,如果未能解决你的问题,请参考以下文章

如何在函数内使用 R 字符向量元素作为字符串和变量?

如何在 R 中将分类变量转换为连续变量?

使用 expss 在 R Marksdown 中格式化表格

如何使用 expss 创建两个标题表

如何在pyspark中将月份名称更改为不同的语言 - 数据框

R:根据列表元素名称创建新的数据框变量