Я пытаюсь определить корреляцию между различными подмножествами переменной (Концентрация, ниже) на основе уровней факторов - в данном случае Lake = (A, B, C) - другими словами, проверить корреляцию между измерения концентрации в точке A по сравнению с измерениями концентрации в точке B, затем B по сравнению с C и A против C.
Проблема в том, что подмножества, основанные на факторах, имеют разную длину, но я хочу включить в корреляцию только наблюдения, которые имеют точное совпадение даты. Я попробовал использовать = 'complete.obs' в функции cor.test, надеясь, что это сработает, но это не сработало.
res <- cor.test(Data$Concentration[Data$Lake=="A"],
Data$Concentration[Data$Lake=="B"],
use='complete.obs',
method = "pearson")
, но я получаю
Error in cor.test.default(Data$Concentration[Data$Lake=="A"], :
'x' and 'y' must have the same length
Пытался найти, но не смог найти решение. Это то, что можно решить с помощью плавления / изменения формы, или, возможно, есть более простое решение, которое я не вижу. Спасибо.
Данные ниже ...
structure(list(Lake = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("A", "B",
"C"), class = "factor"), Date = structure(c(2L, 3L, 4L, 5L, 7L,
8L, 9L, 1L, 3L, 4L, 6L, 7L, 2L, 3L, 4L, 6L, 7L), .Label = c("1970-04-06",
"1970-04-07", "1970-04-28", "1970-05-04", "1970-05-14", "1970-05-15",
"1970-05-28", "1970-05-29", "1970-05-30"), class = "factor"),
Concentration = c(10L, 20L, 30L, 40L, 50L, 50L, 50L, 100L,
200L, 280L, 410L, 500L, 1L, 3L, 8L, 90L, 1200L)), .Names = c("Lake",
"Date", "Concentration"), class = "data.frame", row.names = c(NA,
-17L))