问题标签 [expss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

r - expss 表中的条件格式

我的问题可以考虑扩展以下讨论:R expss package: format numbers by statistic / apply different format to alternate rows

我想了解条件的语法以便能够编写自己的自定义格式。考虑数据集中的“插入”数据框。然后我们通过 expss 创建下表:

最后一行操作基本格式,如上面的 URL 中所述。详细说明:

我了解如何格式化整个表格或列(专家会注意到与 URL 中示例的差异),但如果我只想格式化特定单元格怎么办?例如,digits=0当 value = 100,00%(只显示 100%)时如何设置?我不知道我是否应该去,,,recode何时format何地参考tbl[,pct_cols]......

谢谢!

0 投票
1 回答
61 浏览

r - expss 表中出现重叠小计的重复行

在今天早些时候遇到的情况之后,一个新的与 expss 相关的问题。在交叉表创建序列期间使用重叠小计会导致重复行,更准确地说,是在至少两个不同的小计中使用的行。

让我们考虑infert数据集来突出这个问题。为了演示,我们将强制分解parity

结果是不言自明的。尽管我理解为什么会发生这种情况(需要计算每个不同的总数),但我想知道是否有一种聪明的方法可以消除重复项。

作为一个附属问题,由于小计可以以许多不同的方式编写/定位,因此输出顺序可能非常混乱。是否有仅对指定行进行排序和/或移动的功能?(实际上这与函数中的excluded_rows参数相反tab_sort)理想情况下,输出将按如下方式排序:

谢谢!

0 投票
1 回答
251 浏览

r - 在单个 expss 表中添加和堆叠子组

这次有一个特殊要求,因为知道如何获得我想要的表输出,但想知道 expss 是否存在不那么冗长的解决方案。首先,这个主题可以被认为是这个讨论的扩展 -->带有 expss 包的复杂表,并且也与另一个有关 -->如何在 expss 表中显示仅选择子组 + 整个数据框的结果?

我的表结构如下:首先显示总数据框行的结果,然后按子组拆分。截至今天,以下是我的处理方式(以infert数据集为例):

1) 表格模板

2) 创建 3 个不同的表(总计 1 个,每个子组 1 个),合并为一个:

所有这段代码仅适用于 1 个表,您了解我的担心。有什么好的实践技巧可以避免这个冗长(但有效)的序列吗?我的第一个猜测是:

计算了一个表,但输出远不及目标,可能有一个修复,但我不知道在哪里寻找。任何帮助将不胜感激,谢谢!(注意:如果一个简单的解决方案涉及摆脱#TOTAL 列,我也可以)

0 投票
2 回答
58 浏览

r - Expss - 使用变量前缀为均值表创建变量集

尝试获取包 Expss 以从集合中生成均值表(以类似于多响应表的方式,您输入集合中所有变量共有的前缀)。

这是我在下面尝试解决此问题的尝试,但是此脚本会生成一个带有空白输出的表格。有没有办法做到这一点?

0 投票
1 回答
72 浏览

r - 使用 expss R 加权数据并显示空白单元格“0”问题

我有下面的代码。它没有错误,但是当我使用“tab_weight”对表进行加权时,它只会影响内联行。总行数不变。总行数需要更改我该怎么做?

第二件事是如果单元格中有它显示为空白。是否可以更改为零“0”?例如,“Erzurum”行没有大小写,应该显示为 0 0 0 0 0 ...

输出是

特拉布宗 445 152 293 339 106 339 106

0 投票
1 回答
66 浏览

r - expss 表中的加权累积百分比(升序/降序)

我想使用 expss 包构建累积百分比表,包括升序 (0% -> 100%) 和降序 (100% -> 0%) 订单。fre()已经有一个用于升序的现有函数(即),尽管生成的表没有太多可定制的。

我想将这些计算包含在tab_stat_fun指令中,并设法获得未加权数据集的所需输出。考虑以下示例(infert数据集):

效果很好,但是如果我想用数字向量来衡量这些结果(为了演示infert$w <- as.vector(x=rep(2, times=nrow(infert)), mode='numeric'):),这将不可避免地导致错误,因为 sum 和 cumsum 都不接受 weights 参数(据我所知)。

是否有一个特殊的内置函数可以解决问题?或者可能意味着将年龄向量乘以权重向量的函数组合?

0 投票
1 回答
195 浏览

r - 使用用户定义的函数在 Expss 表中动态传递参数

我有一个与 expss 表相关的(新)问题。我写了一个非常简单的UDF(依赖几个expss函数),如下:

基于infert数据集(加上任意权重的向量)的可重现示例:

该表被计算并且第一行的输出(几乎)如预期的那样。然后第二行的事情变得一团糟,因为这两个参数都z_indices明确地引用了infert$age,这infert$parity是预期的。我的问题:有没有办法动态传递tab_cellsas 函数参数tab_stat_fun的变量以匹配正在处理的变量?我猜这发生在函数声明中,但不知道如何继续......

谢谢!

编辑 2020 年 4 月 28 日: @Gregory Demin 的回答在推断数据集的范围内效果很好,尽管为了更好地扩展更大的数据帧,我编写了以下循环:

希望这对未来的其他 expss 用户有所启发!

0 投票
1 回答
788 浏览

r - R markdown 列联表 %>% 用选择性值制表列变量

我对 R 很陌生,来自 Stata。下面是具有可重现数据示例的 r 降价块。数据代表我正在使用的数据。但只有在数量上有更多的二元(逻辑)和因子变量。

库和数据:

请注意,在我的实际数据中,有更多的分类和逻辑变量。我设法在 r markdown(html 输出)中制作了下表:

问题: 1. 我希望我只能包含“TRUE”列,从表中删除“FALSE”列。但保持第一行标签完整(“E. coli”、“V.choleri”)。实际上我不需要第二行(“TRUE”,“FALSE)2。我已经标记了“总行比例”(#Total hosts),但不能删除前导的“#”符号。在最右边具有“总行比例”的行的列单元格,它显示“100”。我尝试将其作为列单元格的总和,但失败了。“100”完全误导。3.我也试图让我的通过“summarytools”包的“ctable”功能获得所需的表格。由于它具有出色的结构,因此在比例单元格内也可以引入许多观察值。:

但问题是它似乎只允许一对分类变量。而且,“FALSE”不能省略。但最后一列与 rowtotals 完美(观察)

详细信息:R:4.0.0 R studio:1.2.5042 软件包都是最新的。

0 投票
1 回答
58 浏览

r - 使用 expss::cro() 编写用户定义的函数

我正在尝试编写一个相对简单的用户定义函数来输出交叉表,但不确定为什么它没有运行。

我的测试数据:

我的代码:

这会引发一个错误,上面写着......

这在函数之外工作,我期望输出如下:

0 投票
2 回答
215 浏览

r - 使用 R expss 和 data.table 是否可以从 csv 文件加载 data.table 标签,而不是手动输入代码?

应用标签是使调查数据在报告时易于理解的重要部分

所以我能找到的最好的例子使用 expss::apply_labels() 例如著名的 mtcars 例子https://cran.r-project.org/web/packages/expss/vignettes/tables-with-labels.html

作为输入,这需要一个 data.table 和一个逗号分隔的赋值对列表,例如

如果您有一个数据文件和几列,这很好,并且每次都输入它们可能会很麻烦,但如果您有很多数据文件,它就不是很有帮助。那么如何加载格式的 csv 元数据文件:

Col1 Col2 Col3

标签1 标签2 标签3

其中 Col 名称与数据表中的相同名称匹配

这意味着有效地翻译元数据 csv 文件,以便生成

col n = "标签n "

对于每一列。

到目前为止,我发现最大的问题是应用标签列名是对象而不是字符串,并且很难将字符串转换为正确范围内的对象。

这是我必须去的地方

产生

解析错误(文本 = comstring)::1:24:意外','1:varone =“Label1”,^

哦, print(comstring) 产生:

[1] "varone = \"问题一\",vartwo = \"问题二\",varthree = \"问题三\",varfour = \"问题四\",varfive = \"问题五\",varsix = \"问题六\",varseven = \"问题七\",vareight = \"问题八\",varnine = \"问题九\",varten = \"问题十\""