Проблема в том, что ваши переменные не являются уникальными.Если вы объедините их, вы получите все больше и больше строк.Вы должны посмотреть, что вы получите, когда сделаете:
dt <- data.frame(level12R$level1.2_are.out$parameters$stdyx.standardized[,1:2])
tail(dt)
paramHeader param
30 ASRREA.ON ATBR10CG
31 ASRREA.ON ATBR10DG
32 ASRREA.ON ATBR10FG
33 ASRREA.ON ATBR12AG
34 Intercepts ASRREA
35 Residual.Variances ASRREA
Вы можете видеть, что последние переменные одинаковы, но приходят из разных заголовков.
Поэтому мы должны расширитьобъединение, чтобы мы могли делать уникальные записи.Глядя на данные, которые заняли бы 3 столбца, 1, 2 и 8 «заголовок», «переменная» и «между ними».Тогда мы можем пройтись по всему, не получая дубликаты записей.Ваш объект dt в итоге содержит 35 записей и 51 переменную с NA, где результаты были не 35 записями, а 34 или даже 25.
nomes <- '0'
dt <- data.frame(Level12R$level1.2_are.out$parameters$stdyx.standardized[,c(1:2, 8)])
names(dt)<-c("header", "variable", "betweenwithin")
for(i in 1:length(Level12R)) {
nomes[i] = names(Level12R)[i]
df = eval(parse(text=paste0("Level12R$",nomes[i],"$parameters$stdyx.standardized", collapse=NULL)))
df <- df[,c(1:3, 8)]
names(df)<-c("header", "variable", toupper(substr(nomes[i],10,12)), "betweenwithin")
dt <- left_join(x=dt, y=df)
}
Обычно я бы использовал объект списка в цикле, а позже посмотримчто мне нужно сделать с данными в списке.Это предотвращает создание непреднамеренных побочных эффектов при использовании объединений / слияний и т. Д.