gpt4 book ai didi

r - 如何使用单独的表来过滤数据

转载 作者:行者123 更新时间:2023-12-04 18:21:09 24 4
gpt4 key购买 nike

我有一些数据我不确定如何分析。我敢肯定,它目前在 Excel 中,需要摆弄才能在 R 中工作。我有一组目标,它们的大小和颜色。我还有每个目标的用户、条件和他们的分数。

所以第一个表看起来像这样:

Target, 1, 2, 3, 4, 5 ...
Size, L, M, L, S, L ...
Color R, B, G, B, R ...

然后我有所有的用户数据,其中有一列是用户 ID,一列是设备,然后是每个目标的分数列。
User, Condition, 1, 2, 3, ...
1 A 5, 2, 8, ...
1 D 2, 4, 6, ...
2 A 1, 4, 6, ...
2 B 5, 8, 3, ...

我主要想在 4 个条件之间运行 ANOVA,以便查看 L 目标或 R 目标的平均分数是否相同。

我从来不需要使用第二个表来过滤或查找这样的数据。我该怎么做呢?

最佳答案

快速而肮脏的解决方案(因为我相信肯定有人会提出一个更优雅的解决方案来避免循环):

tab1 <- list(Target=1:5, Size=c("L","M","L","S","L"), Color=c("R","B","G","B","R"))
tab2 <- data.frame(rep(1:2, each=2), c("A","D","A","B"),
c(5,2,1,5), c(2,4,4,8), c(8,6,6,3))
names(tab2) <- c("User", "Condition", 1:3)

library(reshape)
tab2.melt <- melt(tab2, measure.vars=3:5)

for (i in 1:nrow(tab2.melt)) {
tab2.melt$Size[i] <- tab1$Size[tab1$Target==as.numeric(tab2.melt$variable[i])]
tab2.melt$Color[i] <- tab1$Color[tab1$Target==as.numeric(tab2.melt$variable[i])]
}

我假设您能够将数据导入 R,但如果数据结构不是您在摘录中显示的数据结构,您可能需要调整上述代码。基本上,这个想法是考虑你的 Target代码作为索引 Size 的一种方式和 Color级别,我们在最终 data.frame 中需要对于每个重复测量(关于第 i 个主题)。

更新的 data.frame好像:
> head(tab2.melt)
User Condition variable value Size Color
1 1 A 1 5 L R
2 1 D 1 2 L R
3 2 A 1 1 L R
4 2 B 1 5 L R
5 1 A 2 2 M B
6 1 D 2 4 M B

从那里,您可以执行 3-way ANOVA 或研究特定的对比。

关于r - 如何使用单独的表来过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com