Я хочу вычислить корреляции между фреймом данных и списком фреймов данных.Вот мой пример:
library(lubridate)
v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(2,20, length = 10)
v3 = seq(-2,7, length = 10)
v4 = seq(-6,3, length = 10)
df1 = data.frame(Date = v1, Tmax = v2, Tmean = v3, Tmin = v4)
v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(3,21, length = 10)
v3 = seq(-3,8, length = 10)
v4 = seq(-7,4, length = 10)
abc = data.frame(Date = v1, ABC_Tmax = v2, ABC_Tmean = v3, ABC_Tmin = v4)
v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(4,22, length = 10)
v3 = seq(-4,9, length = 10)
v4 = seq(-8,5, length = 10)
def = data.frame(Date = v1, DEF_Tmax = v2, DEF_Tmean = v3, DEF_Tmin = v4)
v1 = seq(ymd('2000-05-01'),ymd('2000-05-10'),by='day')
v2 = seq(2,20, length = 10)
v3 = seq(-2,8, length = 10)
v4 = seq(-6,3, length = 10)
ghi = data.frame(Date = v1, GHI_Tmax = v2, GHI_Tmean = v3, GHI_Tmin = v4)
df2 <-list(abc, def, ghi)
names(df2) = c("ABC", "DEF", "GHI")
Я хочу, чтобы все коэффициенты корреляции были между df1 и df2, но только по столбцам.
Например:
- df1 $ Tmax и все столбцы df2 * Tmax
- df1 $ Tmean и все столбцы df2 * Tmean
- df1 $Tmin и все столбцы df2 * Tmin
Я знаю, что могу получить доступ ко всем столбцам Tmax следующим образом:
lapply(df2, "[[", 2)
Я знаю, как рассчитать корреляцию между двумя отдельными значениями:
cor.test(df1$Tmax, df2$ABC$ABC_Tmax, method = "spearman")
Но как я могу сделать это для всех столбцов одновременно?Я попробовал это, которое не работает:
cor.test(df1$Tmax, lapply(df2, "[[", 2), method = "spearman")
Есть идеи?