Мне удалось рассчитать ковариацию для моего большого набора данных с помощью:
cov(MyMatrix, use="pairwise.complete.obs",method="pearson")
Это дало ковариационную таблицу, которую я искал, а также решение проблем NA, которые присутствуют в моих данных. Однако для более глубокого анализа я хочу создать ковариационные матрицы, которые будут работать отдельно с более чем 800 группами, имеющимися в моем наборе данных (у некоторых более 40 наблюдений, у других только 1). Я пытался (с http://www.mail-archive.com/[email protected]/msg86328.html):
lapply(list(cov), by, data = MyMatrix[8:13], ИНДЕКСЫ = MyMatrix["Группа"])
Что дало мне следующую ошибку:
Ошибка в tapply(seq_len(6L), list(
MyMatrix["Group"]
= NA_real_), функция (x): аргументы должны иметь одинаковую длину
Это заставило меня подумать, что проблема с кодом связана с отсутствующими данными NA, поэтому я попытался включить фразу "use="pairwise.complete.obs",method="pearson"" в код lapply и не смог заставить ее работать. . Я не уверен, что это лучшее место для него, поэтому я попытался приклеить его везде:
lapply(list(cov), use="pairwise.complete.obs",method="pearson"),by,data=MyMatrix[8:13], INDICES = MyMatrix["Группа"])
lapply(list(cov),by,data=PhenoMtrix[8:13], INDICES = PhenoMtrix["Группа"], use="pairwise.complete.obs",method="pearson")
Это явно небрежно и не работает, поэтому я немного застрял. Заранее спасибо за вашу помощь!
Мои данные отформатированы следующим образом:
Группа HML RML FML TML FHD BIB
1 323.50 248.75 434.50 355.75 46.84 NA 2 NA 238.50 441.50 353.00 45.83 277.0 2 309.50 227.75 419.00 332.25 46.39 284.0
cov(1)
передает число1
в функциюcov(...)
.cov(...)
ожидает матрицу. С другой стороны, результатом кода выше является список ковариационных матриц, по одной для каждой группы. Поэтому введите cov.list[1], чтобы увидеть ковариационную матрицу для первой группы. 09.02.2014