Noob R Frage hier von einem Matlab/Python-Benutzer. Ich habe ein Dataset mit Hunderten von verschiedenen Benutzern, von denen jeder eine eindeutige Anzahl von Datenzeilen hat, und möchte die Daten als eine Liste von Matrizen speichern. So kann Benutzer 1 eine Matrix von 500 Zeilen haben, Benutzer 2 kann eine Matrix von 250 haben und so weiter. Dies wird als Eingaben für ein hierarchisches Logit mit einer Mischung von Normalen verwendet, um die Betas jedes Benutzers zu erklären. Spalte 1 meines Datasets ist eine Benutzer-ID und der Rest der Spalten sind numerische Werte.Speichern hierarchischer Daten als eine Liste von Matrizen in R
data <- read.csv("hierarchical_dataset.csv", header=FALSE)
nlgtt = length(table(data[[1]])) # number of users
users = names(table(data[[1]])) # user ids
Alle bisher gut, aber hier ist, wo ich bin immer mein Fehler:
TV = matrix()
testdata = list()
for (i in 1:nlgtt)
{ TV[i] = matrix(table(data[[1]])[[i]]) # number of rows per user
print(TV[i]) # should equal the below line
print(dim(data[data[[1]] == users[i], ])) # should equal the above line
testdata[i] = data[data[[1]] == users[i], ] # store hierarchically by user
}
Wenn ich ausführen, um die oben, die gedruckte Werte übereinstimmen, so dass die korrekten Daten abgerufen werden, sondern dann bekomme ich einfache Wiederholungen der users[i]
Wert (die Benutzer-ID) für jede testdata[i]
, und auch eine number of items to replace is not a multiple of replacement length
Fehler. Ich bin mir sicher, dass dies nur ein einfaches Formatierungsproblem ist, aber ich habe mich umgeschaut und nichts gefunden, was mein Problem löst. Hilfe geschätzt!