Мои вопросы касаются того, как правильно обращаться с кучей данных, которые у меня есть.
Я провожу эксперимент с 4 условиями.В каждом условии будет по 20 участников, и когда каждый из них завершит эксперимент, у меня останется текстовый файл с 600 строками и 7 столбцами.600 строк соответствуют 600 испытаниям, которые выполняет каждый человек.7 столбцов относятся к переменным, которые измеряются в каждом испытании.
Поэтому мои данные для каждого человека выглядят примерно так (за исключением 600 строк):
394 b a 0 9773 1 1436
114 a b 0 3595 1 1246
432 b a 0 1272 1 1061
209 a a 1 3514 1 120
Для запускамои анализы, было бы действительно полезно, если бы я мог собрать все эти текстовые файлы в один объект, называемый «данные», который имел бы следующие измерения:
- Экспериментальное условие (1-4)
- Номер участника (1-20)
- Пробный номер (1-600)
- Переменная (1-7)
Мои файлы имеют такие имена, как "ii-wm-long_1316994934_7_1.txt ", где часть« ii-wm-long »идентифицирует их экспериментальное состояние, а последнее число (1 здесь) идентифицирует их номер участника.
В данный момент мой код выглядитэто:
#Get the names of the text files in the results folder
files <- list.files()
#Conditions - which ones correspond to which numbers
condition.def <- c("ii-wm-long","ii-wm-short","wm-ii-long","wm-ii-short")
#1 = ii-wm-long
#2 = ii-wm-short
#3 = wm-ii-long
#4 = wm-ii-short
#This is where everything will be stored
data <- array(NA,dim=c(4,20,600,7),dimnames=c("condition","participantNumber","trialNumber","experimentalvariable"))
#Loop for each participant's file
for (n in 1:length(files)){
#What condition is the person in?
condition <- unlist(strsplit(files[n],"\\_"))[1]
condition <- grep(condition,condition.def)
#What is their participant number (of the people in that condition)?
ppt <- as.integer(unlist(strsplit(unlist(strsplit(files[n],"\\_")),"\\."))[4])
#Read the text file into the array
data[condition,ppt,,] <- read.table(files[n],sep="\t",header=F,nrows=600,col.names=c("stimulus","category","category.choice","category.correct","category.time","memory.present","memory.time"))
}
Я получаю сообщение об ошибке:
Error in data[condition, ppt, , ] <- read.table(files[n], sep = "\t", :
incorrect number of subscripts
Я прочитал о cbind и abind и не могу понять, как они позволили бы мне читатьданные по одному.
Как правильно взять двумерный массив и повернуть его?в последние 2 измерения 4D массива?