У меня есть кадр данных в R с 2 переменными [например. высота, вес] Я бы хотел рассчитать корреляцию наряду с несколькими другими ковариатами [такими как пол, этническая принадлежность].Как извлечь имена из списков в R
Я бы хотел рассчитать значение R^2 для высоты и веса для каждой группы пола и этнической принадлежности. Например. R^2 для высоты против веса для мужских & кавказцев, Женский & кавказцев, азиатов Мужской &, Женский & кавказцев и т.д.
я выяснил «по» команде было бы полезно в этом.
cor <- by(data[,c(6,7)],list(data$sex,data$ethnicity),cor)
> cor
: Female
: African American
wt ht
wt 1.0000000 0.6879572
ht 0.6879572 1.0000000
------------------------------------------------------------------------------------------------------------------------------------------------
: Male
: African American
wt ht
wt 1.0000000 0.6868178
ht 0.6868178 1.0000000
------------------------------------------------------------------------------------------------------------------------------------------------
: Female
: Hispanic
wt ht
wt 1.0000000 0.6162962
ht 0.6162962 1.0000000
------------------------------------------------------------------------------------------------------------------------------------------------
: Male
: Hispanic
wt ht
wt 1.0000000 0.5854748
ht 0.5854748 1.0000000
Мой вопрос, я хотел бы преобразовать эти результаты, которые в виде списка, в кадр данных со следующими столбцами:
R2_value Sex Этничность
Мой вопрос как я могу вывести значения пола и этнической принадлежности из списка «cor» (мой вывод из команды «by»).
Когда я делаю «cor [[1]]», я просто получаю корреляционную матрицу для женщин, афроамериканцев.
Вызов «имен (cor)» не дает мне то, что я хочу.
Вы должны взглянуть на 'ldply' в пакете plyr. Он возьмет список и вернет data.frame. – John
включают подмножество вашего набора данных с использованием 'dput()' или предоставить воспроизводимый пример. – marbel
Что сказал Мартин. Кроме того, ожидаете ли вы правильного ответа включить вычисление R^2 из корреляционной матрицы? –