r - 主体内获胜



>我有一个长格式数据帧data.set,其中每个主题都有不同的数值(data.set$target_resp.rt)。我已经通过使用 DescTool 函数Winsorize赢得了关于总体标准的数据(有关信息,请参阅此处):

overall.criterion.2sd <- data.set$overall.mean+(2*data.set$overall.sd)
winsors.2 <- DescTools::Winsorize(data.set$target_resp.rt, maxval=overall.criterion.2sd[1])

上面,可以将maxval定义为变量overall.criterion.2sd的第一个值,因为它对所有受试者都是相同的值。现在我想按主题对我的数据进行胜利,即我需要在主题内逐行运行胜利。这是我的尝试,criterion.2sd只是一个N值的向量(N=no.的受试者):

criterion.2sd <- data.set$rt.mean+(2*data.set$rt.sd)
within.winsors.2 <- data.set %>% group_by(Nome, Cognome) %>%
Winsorize(data.set$target_resp.rt, maxval=unique(criterion.2sd))

弹出以下错误:

[<-.data.frame错误 (*tmp*, x

我知道maxval变量的基数有问题,但我不知道如何解决它。有人可以帮忙吗?

以下是数据集data.set的示例(希望足够了;让我知道它是否是正确的格式):

subject        target_resp.rt   rt.mean     rt.sd
1 1              1.0398901        0.9016781   0.3109358
2 1              0.6887729        0.9016781   0.3109358
3 1              0.7691720        0.9016781   0.3109358
4 1              1.0064900        0.9016781   0.3109358
5 1              0.8195999        0.9016781   0.3109358
6 2              0.8410320        1.0500845   0.4210796
7 2              0.8229311        1.0500845   0.4210796
8 2              0.9250839        1.0500845   0.4210796
9 2              1.0085750        1.0500845   0.4210796
10 2              1.1406291        1.0500845   0.4210796
11 3              0.5561039        0.749789    0.2350127
12 3              0.6022139        0.749789    0.2350127
13 3              0.8560688        0.749789    0.2350127
14 3              0.5886030        0.749789    0.2350127
15 3              0.5520449        0.749789    0.2350127

这是混淆 dplyr 语法的问题。在原始问题中,您正在向Winsorize传递一个向量,但data.set %>% group_by(Nome, Cognome)是一个数据集,管道(%>%)将整个数据集传递给Winsorize的第一个参数,这意味着您实际上是在调用

Winsorize(x = data.set, minval = ..., maxval = ...)

你真正想要的是使用group_by后的mutate来更改target_resp.rt;语法看起来像:

data.set %>% group_by(subject) %>%
mutate(target_winsorized = Winsorize(target_resp.rt, maxval=unique(overall.criterion.2sd))

这会在数据集中创建一个新变量,target_winsorized具有所需的属性。将来,您可能还希望将overall.criterion.2sd保存在数据集中。

文档

如果您想了解有关语法和dplyr样式的更多信息,请查看dplyr文档。

相关内容

  • 没有找到相关文章

最新更新