Erstellen einer 3D-matrix mit R?
Ich versuche zu bauen, eine 3D-matrix, indem die Schleife-Variablen in einen großen Datensatz (siehe den 'Kopf' an die Daten unten). Speziell, muss ich erstellen Sie eine matrix mit so vielen Zeilen als die maximale Anzahl von 'LastFixes' so viele Spalten, wie es gibt Themen (Sub = 36) und so viele Seiten wie es gibt Bedingungen (D. H., 8), und ich zuweisen möchten 1s in Folge von Beginn der FixStart bis zum Ende des FixEnd, und 0EN vom Ende einer FixEnd bis zum start der FixStart und so weiter und so Fort. So zum Beispiel für die ersten Zeilen der Daten brauche ich, um 1s in den ersten 165 Zeilen der matrix und dann die 0 aus Zeile# 166 bis 330. Mein R-code funktioniert, aber seltsamerweise bekomme ich andere zahlen als 0 und 1 in der matrix! Unten können Sie sehen, die 'Kopf' - als auch der R-code. Ich wäre dankbar wenn jemand mir helfen könnte dieses problem zu beheben. Vielen Dank
enter code here
head (data)
Sub Item Condition FixStart FixEnd
1 1 4 7 1 165
2 1 4 7 331 600
3 1 4 7 623 1180
4 1 4 7 1202 1487
5 1 4 7 1511 1561
6 1 4 7 1696 2466
lastFix <- max(data$FixEnd)
datamatrix<-array(0,dim=c(lastFix,36,8))
for (i in 1:length(data$Sub)){
n <- data[i,1]
if (data[i,3] == "1"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,1] <- datamatrix[j,n,1]+1
}
}else
if (data[i,3] == "2"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,2] <- datamatrix[j,n,2]+1
}
}else
if (data[i,3] == "3"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,3] <- datamatrix[j,n,3]+1
}
}else
if (data[i,3] == "4"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,4] <- datamatrix[j,n,4]+1
}
}else
if (data[i,3] == "5"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,5] <- datamatrix[j,n,5]+1
}
}else
if (data[i,3] == "6"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,6] <- datamatrix[j,n,6]+1
}
}else
if (data[i,3] == "7"){
for (j in data[i,4]:data[i,5]){
datamatrix[j,n,7] <- datamatrix[j,n,7]+1
}
}else
if (data[i,3] == "8"){
for(j in data[i,4]:data[i,5]){
datamatrix[j,n,8] <- datamatrix[j,n,8]+1
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, das ist das, was Sie suchen. Ich habe geschrieben eine doppelte Schleife, die für die Bewältigung jedes Thema X-Zustand:
Ihre kleinen Datensatz, dann werden die Ergebnisse zu Veränderungen auf der 7. Ebene(Zustand == 7) und 1. Spalte der matrix (Sub == 1). Hier ist ein Bild: