#correlation #numeric #multi-level #psych
#корреляция #числовой #многоуровневый #psych
Вопрос:
Я пытаюсь выполнить многоуровневый факторный анализ, используя пакет «psych». На первом шаге рекомендуется использовать функцию statsBy () для получения данных корреляции:
statsBy(study2, group = «ID»)
Однако это выдает следующую «Ошибку в FUN (data [x, , drop = FALSE], …): ‘x’ должен быть числовым«.
Для набора данных я включил только группирующую переменную «ID» и две другие числовые переменные. Я запустил следующую строку, чтобы проверить, являются ли переменные числовыми.
sapply(study2, is.numeric)
ID v1 V2
ЛОЖЬ ИСТИНА ИСТИНА
Вот код в трассировке ошибки.Но я не знаю, что здесь означает ‘x’, и я заметил, что в строках 8 и 9 X находится в заголовке и в нижнем регистре в строке 10.
* 10. FUN(данные [x, , drop = FALSE], …)
9. FUN(X[[i]], …)
8. lapply(X = ans [index], FUN = FUN, …)
7. tapply(seq_len(728L), список (z = c(«5edfa35e60122c277654d35b», «5ed69fbc0a53140e516ad4ed», «5d52e8160ebbe900196e252e», «5efa3da57a38f213146c7352», «5ef98f3df4d541726b1bcc48», «5debb7511e806c2a59cad664», «5c28a4530091e40001ca4d00», «5872a0d958ca4c00018ce4fe», «5c87868eddda2d00012add18», «5e80b7427567f07891655e7e», …
6. вычисление(замена(tapply(seq_len(nd), IND, FunX, упростить = упростить)), данные)
5. вычисление(замена(tapply(seq_len(nd), IND, FunX, упростить = упростить)), данные)
4. структура(eval(substitute(tapply(seq_len(nd), IND, FunX, simplify = упростить)), данные), вызов = match.call(), класс = «by»)
3. by.data.frame(данные, z, colMeans, na.rm = na.rm)
2. по (данные, z, значения, na.rm = na.rm)
1. statsBy(study2, group = «ID»)*
Набор данных содержит 728 строк, и такие строки, как «5edfa35e60122c277654d35b», являются идентификаторами. Кто-нибудь может помочь объяснить, что могло пойти не так?
Ответ №1:
У меня была та же ошибка, единственным способом было преобразовать групповую переменную в числовой класс.
Попробуйте:
study2$ID<-as.numeric(study2$ID)
statsBy(study2, group = "ID")
Если dat$ID
имеет характер класса:
study2$ID<-as.numeric(as.factor(study2$ID))
statsBy(study2, group = "ID")