【发布时间】:2023-03-16 03:57:02
【问题描述】:
我有一个非常大的数据框,其构建如下: Originaldf
我想在项目 A 中执行成对 t 检验,比较条件组内的测量值。所以我想看看对于与项目 A 相关的所有观察结果,对照组、测试组和安慰剂组的测量值之间是否存在差异(条件)。
我做的第一件事是使用 dplyr 的过滤功能将数据框拆分为一个列表。
Listdf <- split(originaldf, Item)
这行得通,我得到了一个包含 82 个元素的列表,其中一个数据框对应于原始数据框中的每个项目。
我现在正在尝试对列表的每个元素执行 pairwise.t.test 函数。我对 R 比较陌生,并且认为为这个过程编写一个循环虽然效率低下,但可以帮助我了解背景情况。我知道还有使用 lapply 功能的选项。我使用以下代码在 Listdf 上进行了尝试,我知道这很可能过于简单,但值得一试。
lapply(Listdf, pairwise.t.test(Value, Condition))
但是,我在因子(g)中收到错误错误:找不到对象“条件”。不确定是否有办法更具体地引用 Condition 以便可以找到它。我已经对使用以下代码的项目之一执行了单独的 pairwise.t.test。
pairwise.t.test(List$ItemA$Value, List$ItemA$Condition, p.adjust.method = "none")
但是,我认为这在 lapply 函数中不起作用,因为我希望它对 ItemA、ItemB、ItemC 等执行 t.test...
目前我尝试过的循环如下:
for (i in Listdf) {
pairwise.t.test(List$i$logAddedConstant, List$i$Condition, p.adjust = "none")
}
为此,我收到错误“split.default(X, group) 中的错误:第一个参数必须是向量” 我相信这个错误对应于原始数据帧的原始拆分。但是我不太明白为什么这个错误会在代码中出现这么晚,因为数据帧的拆分没有问题。
我知道我可能遗漏了一些基本的东西,但我很困惑并且尝试了多种选择都无济于事。如果有人有其他想法或建议,我将非常感谢您的帮助。如果我应该添加更多信息,请告诉我。
【问题讨论】:
-
如果您可以通过
dput添加data.frameoriginaldf的结构而不是提供图片,那就太好了。这将使其他人更容易帮助回答您的问题。 -
以后会做!不知道这是一个选项..谢谢你让我知道