Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为重复的方差分析准备多个数据文件的修剪平均值_R - Fatal编程技术网

R 为重复的方差分析准备多个数据文件的修剪平均值

R 为重复的方差分析准备多个数据文件的修剪平均值,r,R,我有多个数据文件(以制表符分隔的txt文件),格式如下: 制作了一些示例文件 我想排除边远的RT,并对RT的平均值和文件的分数(带因子条件)进行方差分析。到目前为止,我已经以一种非常丑陋的方式完成了这项工作,并按主题进行了行(我更喜欢将行格式化为subjectxcondition) 我当前的尝试使用for循环: all_data<-data.frame(rbind(1:27)) #make empty data.frame all_data for(i in 1:2) { n= pa

我有多个数据文件(以制表符分隔的txt文件),格式如下:

制作了一些示例文件

我想排除边远的RT,并对RT的平均值和文件的分数(带因子条件)进行方差分析。到目前为止,我已经以一种非常丑陋的方式完成了这项工作,并按主题进行了行(我更喜欢将行格式化为subjectxcondition)

我当前的尝试使用for循环:

all_data<-data.frame(rbind(1:27)) #make empty data.frame 
all_data
for(i in 1:2)
{
n= paste(i,".txt", sep="")
a<- sprintf("table%d", i, i)
data <- read.table(toString(n), header = TRUE, sep = "\t")

所有数据我会使用
plyr
软件包中的
ddply
。例如:

require(plyr)
res <- lapply(list.files(pattern='^[1-2].txt'),function(ff){
  ## you read the file 
  data <-  read.table(ff, header=T, quote="\"")
  ## remove the outlier
  data <- data[data$RT>200,]
  data <-  ddply(data,.(Condition),function(x) x[!abs(scale(x$RT)) > 3,])
  ## compute the mean
  ddply(data,.(Condition,Reqresponse,Score),summarise,RT=mean(RT))
})

[[1]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400

[[2]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400
require(plyr)

res我会使用
plyr
软件包中的
ddply
来实现这一点。例如:

require(plyr)
res <- lapply(list.files(pattern='^[1-2].txt'),function(ff){
  ## you read the file 
  data <-  read.table(ff, header=T, quote="\"")
  ## remove the outlier
  data <- data[data$RT>200,]
  data <-  ddply(data,.(Condition),function(x) x[!abs(scale(x$RT)) > 3,])
  ## compute the mean
  ddply(data,.(Condition,Reqresponse,Score),summarise,RT=mean(RT))
})

[[1]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400

[[2]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400
require(plyr)

你好,卢克。现在任何人都很难帮助你,因为我们没有关于1.txt、2.txt内容的好例子。您发布的示例数据没有必要的选项卡可供
read.table()
读取。也许你可以上传1.txt和2.txt到谷歌文档或类似的东西,并链接到它们?好的,我会让我的示例数据更好,第二节!再想一想,我会制作一个示例数据文件并上传。@luke123什么是
所有数据
?这里
对于(1:9中的o)所有的_数据[i,o]是文件索引。所有_数据都是一个帧,表示占用一行的每个数据文件。理想情况下,我希望每个数据文件占用一个rowHi luke的每个条件的平均值。现在任何人都很难帮助你,因为我们没有关于1.txt、2.txt内容的好例子。您发布的示例数据没有必要的选项卡可供
read.table()
读取。也许你可以上传1.txt和2.txt到谷歌文档或类似的东西,并链接到它们?好的,我会让我的示例数据更好,第二节!再想一想,我会制作一个示例数据文件并上传。@luke123什么是
所有数据
?这里
对于(1:9中的o)所有的_数据[i,o]是文件索引。所有_数据都是一个帧,表示占用一行的每个数据文件。理想情况下,我希望每个数据文件的每个条件都有一个方法,它占据了我for循环中的row1东西,允许我根据它们的文件名对某些数据文件进行反向评分,使它们在%c(2,4,6,7,9,11,14,16,18,19,21,23,25,28,30,32,34,36)中都具有可比性,{进行反向评分},你能想出一种方法把它嵌入到plyr函数中吗?@luke123 yu已经从你的OP中删除了这一行。你是否谈论
seq(from=1,to=4001,by=500)…
?但是这个结果和你期望的接近吗?是的,结果是非常好的欢呼——这句话我原以为是夸大了我原来的帖子,但现在我认为我应该包括在内。某些文件的响应a和b是反向的,我用脚本写的,这样我就可以在%c中反转I%(2,4,6,7,9,11,14,16,18,19,21,23,25,28,30,32,34,36){data$Reqresponse[data$Reqresponse==“a”]我的for循环中有一个东西,它允许我根据某些数据文件的文件名对它们进行反向评分,使它们在%c中具有可比性(2,4,6,7,9,11,14,16,18,19,21,23,25,28,30,32,34,36){做反向评分的东西},你能想出一种方法把它嵌入到plyr函数中吗?@luke123 yu已经从你的作品中删除了这一行。你说的是
seq(from=1,to=4001,by=500)…
?但这个结果是否与您预期的结果接近?是的,结果非常令人振奋——这是一行我原以为会使我的文章内容膨胀的内容,但现在我认为我应该包括在内。某些文件的响应a和b是反向的,我用脚本写的,就像我在%c中的%一样(2,4,6,7,9,11,14,16,18,19,21,23,25,28,30,34,36){data$Reqresponse[data$Reqresponse==“a”]
data <- data[which(data$RT>200),]
data <- do.call(rbind,by(data,data$Condition,function(x) x[!abs(scale(x$RT)) > 3,] ))
RT<-as.vector(tapply(data$RT,list(data$Condition,data$Reqresponse, data$Score),mean))
for(j in 1:18)
{
all_data [i, j+9] <- RT[j]
}
}
require(plyr)
res <- lapply(list.files(pattern='^[1-2].txt'),function(ff){
  ## you read the file 
  data <-  read.table(ff, header=T, quote="\"")
  ## remove the outlier
  data <- data[data$RT>200,]
  data <-  ddply(data,.(Condition),function(x) x[!abs(scale(x$RT)) > 3,])
  ## compute the mean
  ddply(data,.(Condition,Reqresponse,Score),summarise,RT=mean(RT))
})

[[1]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400

[[2]]
   Condition Reqresponse Score   RT
1          X           a     0  500
2          X           a     1  750
3          X           b     0  500
4          X           b     1  500
5          Y           a     0  400
6          Y           a     1  640
7          Y           b     1 1000
8          Z           a     0 1000
9          Z           a     1 1675
10         Z           b     0  400