У меня есть список классов S4 (называемый vi2). Это его первая часть:
- @ переменные: chr [1: 7]
- @vImplist: list of 400
- $1: Formal class '.vImp' with 2 slots
- @Variables: chr [1:7]
- @vImp: 'data.frame': 7 bs. of 3 variables:
- $variables:Factor w/ 7 levels
- $Ctest: num [1:7]
- $ Atest: num [1: 7]
- $variables:Factor w/ 7 levels
- $2: Formal class '.vImp' with 2 slots
- @Variables: chr [1:7]
- @vImp: 'data.frame': 7 bs. of 3 variables:
- $variables:Factor w/ 7 levels
- $Ctest: num [1:7]
- $ Atest: num [1: 7]
- $variables:Factor w/ 7 levels
- $1: Formal class '.vImp' with 2 slots
Всего существует 400 классов .vImp, которые имеют один и тот же формат. Я пытаюсь извлечь файл @vImp: data. frame 'для каждого класса и объединить их в новый фрейм данных. Я могу сделать это индивидуально с помощью следующей строки:
vic = as.data.frame(vi2@vImplist$'1'@vImp)
Это создает data.frame с правильной информацией для этого класса. Однако когда я пытаюсь выполнить это для всех 400 классов одновременно, это терпит неудачу.
vic = as.data.frame(vi2@vImplist$'1:400'@vImp)
Ошибка в as.data.frame (vi2 @ vImplist $ '1: 400' @ vImp): попытка получить слот «vImp» из объекта базового класса («NULL») без слотов. em >
Я также пробовал использовать цикл для выполнения задачи. Однако это также не удалось с той же ошибкой:
for (i in seq(from = 1, to = 1, by = 1)) {
vic = as.data.frame(vi2@vImplist$'[i]'@vImp)
output <- rbind(newdf,vic)
}
Есть ли у кого-нибудь предложения по поводу того, в чем может быть проблема?