问题标签 [psych]
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.
r - Hmisc::latex 在 psych 对象上打印的控制数字
我使用 psych::cortest.mat 对相关矩阵进行了比较。我想将输出放在 Sweave 文件中,以便使用 knitr 进行生产。当我使用 Hmisc::latex() 函数时,它可以工作,但它也会为每个结果产生大约 7 位数字,这使得它真的没有吸引力。我可以在 knitr 中使用 markup 参数生成输出,但我文档中的所有其他表都可以使用 latex output (results='asis') 更有效地生成。
想法?
r - R:如何在我的 Rmd 输出中抑制来自 alpha() 函数的持续警告消息?
程序:R 3.2.1 for Mac OSX
IDE:RStudio
输出:rmkd > html
包:“psych”
功能:alpha()
问题:
使用alpha(data, na.rm=F, check.keys=F, delete=F)
时,由于部分输入数据是负相关的,并且因为我有 check.keys = FALSE,我收到以下消息:
有些项目XXX与总量表呈负相关,可能应该颠倒过来。为此,请使用“check.keys=TRUE”选项再次运行该函数
问题:
我的 check.keys 是故意设置的。完全理解警告的含义,主要是出于审美和教育原因,我怎样才能在输出中抑制它?
到目前为止的尝试:
1.我试过suppressWarnings()
& suppressMessages()
。
2. 我试过invisible()
& sink(., type="message")
。
3. 在 Rmd 块中,我尝试过:```{r warning=F, message=F}
4. 探索print(alpha)
我发现了我认为的起源。也许有人知道如何抑制这部分代码?:
谢谢!
r - 如何从 psych::principal 检索/估算底层旋转矩阵 (rotmat)?
我psych::principal
在另一个函数中使用,各种rotate
函数传递给principal
. (principal
提供许多旋转选项并将它们传递给不同的其他功能)。
我需要获得使用任何旋转过程的旋转矩阵,并实现。
所有下游轮换程序都提供此功能,但似乎没有return()
被principal
.
例如:
我不愿意从principal
. (不要重复你自己或其他人,就像说的那样)。
有谁知道如何:
- 我可以优雅地,不知何故,神奇地,从检索 ,虽然它似乎没有返回它?
rotmat
principal()
- 或者,我可以估算任何
rotmat
必须“发生”的情况,因为我知道旋转和未旋转的载荷?
r - 无法从心理再现 varimax 旋转:因子的顺序已更改
psych::principal
为了测试目的,我需要以编程方式重现自动(varimax)旋转。
事实证明,对于某些数据,我无法从 再现该旋转psych
,因为显然,输出中组件的顺序会随着旋转而改变。
考虑这个可重现的例子:
- 这是预期的行为,如果是,为什么?
- 我怎样才能避免这种情况?
更新
只是一个小补充:旋转矩阵在两个过程中实际上是相同的:
这意味着(有点违反直觉)rot.mat
已按原始顺序应用于主要组件的过去版本。
r - 为什么 GPARotation::Varimax 和 stats::varimax 之间存在差异?
(至少)有两种不同的方法可以对 R 中的载荷矩阵进行 varimax-rotateGPArotation::Varimax
和stats::varimax
.
奇怪的是,即使对两者都启用了 Kaiser-Normalization,它们也会产生微妙的不同结果。
这对测试来说有点痛苦。
诚然,这些差异并不大——但它们似乎太大而不仅仅是浮点伪影。
我认为 varimax 是一个定义明确的自动旋转,应该产生完全相同的结果。
这些差异是预期的行为吗?
如何解释它们?
请注意,normalize = TRUE
为两者设置,因此(不存在)Kaiser 规范化不考虑差异(认为它解释了来自内部psych::principal
的差异)。
r - 为什么“Varimax”和“varimax”之间的 psych::principal 存在差异?
在一个相关问题stats::varimax
中,我询问了为什么和之间存在差异GPArotation::Varimax
,这两个psych::principal
调用取决于为 设置的选项rotate =
。
这两者之间的差异(参见其他问题)解释了与psych::principal
. 似乎这些差异会以某种方式加剧。psych::principal
(我有一个简单的理论为什么,我想得到证实)。
对于浮点伪像或其他东西来说,这似乎太大了。
我的假设是(额外的)差异源于默认为 (Kaiser) 的事实GPArotation::Varimax
,normalize == FALSE
而 **stats::varimax
默认为 (Kaiser)normalize == TRUE
,不能在 `principal::psych` 中进行不同的设置。
stats::varimax
手动的:
## varimax with normalize = TRUE is the default
GPArotation::Varimax
/GPArotation::GPForth
手册:
参数 normalize 指示是否以及如何在旋转之前进行任何规范化,然后在旋转后撤消。如果 normalize 为 FALSE(默认值),则不进行标准化。如果 normalize 为 TRUE,则完成 Kaiser 标准化。(所以归一化 A 的平方行条目总和为 1.0。这有时称为 Horst 归一化。)
此外,他们psych::Kaiser
手动警告:
GPARotation 包(默认情况下)不规范化,fa 函数也不规范化。然后,为了更容易混淆,stats 中的 varimax 确实如此,而 GPARotation 中的 Varimax 则没有。
任何人都可以确认差异实际上是由标准化选项解释的吗?
r - 如何保存 Jupyter 中 R 的心理库中由 pair.panels 生成的图
我正在使用 R 的库,并且正在使用它的函数psych
在 Jupyter 笔记本上绘制相关对。pairs.panels
我尝试使用 ggplot 的ggsave
函数来保存绘图,但它不起作用。错误说:
Error in ggsave(filename = "correlation-pairs.png", : plot should be a ggplot2 plot
有没有办法保存输出pairs.panels
?
r - Psych alpha() 函数在输入 dplyr 结果时给出错误
我有一个大型数据集,我正试图缩小以集中注意力。作为其中的一部分,我有三个变量,测量了五次。我已经把每次都变成了一个平均值,所以我最终得到了五个变量(每次一个),我想找到它们的内部一致性。当我尝试使用计算 Cronbach 的 alpha 时psych::alpha()
出现错误。
25行可重现数据:
接下来,我尝试使用此方法来获取 1:3、4:6 等列的平均值(但按名称):
最后,我想知道这些变量使用psych
包的一致性:
这给出了这个错误:
当我打印它时,我的数据框似乎是正确的,我应该能够获得这些值的一致性。为什么会r
抛出这个错误?
r - 使用分组变量计算多行的平均值
我正在尝试计算多个类的总体平均值。目前数据库是长格式的。我尝试选择第一个 ID 号(组变量 1),然后选择我感兴趣的虚拟变量(stem=1)类(分组变量 2),然后为收到的成绩计算一个 GPA 平均值(即词干 GPA 平均值)在感兴趣的课程中(stem=1)。
我在下面附上了一个数据库示例。总的来说,我正在尝试弄清楚如何计算每个学生的 GPA。
我曾尝试使用 library(psych)、describeBy(data, dataset$id, dataset$stem),但无济于事。有什么建议么?
r - 将海量数据导出合并到“R”中,而无需一一添加剪切和粘贴行
我在一个数据集中有 40,000 多个观察值,其中包含 250 多个公司变量和各种数量,涉及会议、与会者、代表、代表数量等。
使用R代码,我创建了一个只有四个变量的新数据集,我希望将其描述性统计数据导出到我感兴趣的 Excel 中:
变量编号对应于以下列名称
“sn”代表公司名称,其余是与会议的各种度量、会议持续时间、演示者人数等相对应的变量。
之后,我在 40,000 个观察数据集中制作了与每个特定公司相对应的数据集子集,其中包含五个变量,而不是原来的 250 个。
代码如下:
等等超过45家公司。[稍后我将按公司名称和日期创建从 1965 年到 1987 年的子集,这就是为什么我只针对这个日期对所涉公司无关紧要的孤立实例提出整个问题]。
我的任务是为“sn”列之后的每个变量提取描述性统计数据。我正在寻找名为“earntot”的变量的平均值、标准差、最小值、最大值和观察次数;名为“earnctot”的变量的平均值、标准差、最小值、最大值和观察次数,以及变量“meeting55”和“meeting65”的相同描述性统计。
我能够使用以下代码以及特定公式来完成此操作:
完成此操作后,我在 Excel 中获得了之前我需要的信息的一行。
然后我继续执行与上述相同的步骤,除了使用不同的公司来获取另一个单独的文件,例如“descriptive.CompanyB.xlsx”、“descriptives.CompanyC.xlsx”、....
我从 50 多个打开的 excel 窗口中的每一个窗口中剪切并粘贴所有行,并将它们组合到另一个单独的 excel 窗口中,其中包含我想要的所有信息。
单行的示例如下所示:
我怎样才能让所有行出现在一个文件中,而不需要单独获取每一行,必须从每个单独的 excel 文件中剪切和粘贴,然后必须将其粘贴到单独的文件中。我在后台打开了 50 多个 excel 文件,其中包含我需要的精确信息,但一次只能使用一个。
以下是数据的可重现示例: