Я пытаюсь сделать пару вещей здесь, в R. У меня большой набор данных.Мне нужно найти среднее значение столбца SI.x
, которое я сделал, затем разбить данные и найти среднее значение SI.x
для каждого из подмножеств, что я и сделал.
Но тогда мне нужно вычесть общее среднее значение SI.x
(которое я назвал meangen0a
, поскольку оно означает среднее поколение, на которое я смотрю) из каждого поднабора средних.Я бы хотел сохранить подмножество средних как вектор, вычесть meangen0a
из каждого из них и сохранить результат как другой вектор, так как позже мне понадобится больше векторной математики.
Вот что я сделал до сих пор:
Я получил среднее значение SI.x
поколения, которое я смотрю (которое я назвал gen0a
):
meangen0a <- mean(gen0a$SI.x)
Это работало нормально.
Я разделил генерацию по лечению (контроль и четыре других) и использовал только те, которые были выбраны (что было обозначено 1
в столбце Select
).
gen0ameans <- with(gen0a[gen0a$Select == 1,], aggregate(SI.x, by=list(Generation, SelectTreatment), mean))
colnames(gen0amean) <- c("Generation, "Treatment", "S")
Это дало мне таблицу с поколением (все 0a
), пятью обработками и их значениями SI.x
.Это то, что я хотел.
Теперь я хочу вычесть общее среднее значение meangen0a
из каждого из пяти средств обработки в таблице gen0ameans
.Я попытался сделать это:
S0a <- lapply(gen0ameans$S, FUN=function(S) S-meangen0a)
, и он дал мне правильные числа, но не в векторном формате.Мне нужно, чтобы он был в каком-то векторе, потому что позже мне нужно будет поднастроить следующее поколение и вычесть 0a
средства из следующего поколения.Когда я пытался сохранить S0a
как вектор или матрицу, он не давал мне ни одной строки или столбца тех средств, которые мне бы хотелось.
Любая помощь будет оценена.Спасибо!
Редактировать - Среднее значение gen0a
равно -0,07267818.
Таблица gen0ameans
выглядит следующим образом:
Generation
-----------------
0a
0a
0a
0a
0a
Treatment
-----------------
Control
Down1
Down2
Up1
Up2
S
-----------------
-0.07205068
-0.08288528
-0.08146745
-0.06296805
-0.06401943
При выполнении команды S0a
из # 3 выше, это дает мне:
[[1]]
[1] 0.0006274983
[[2]]
[1] -0.0102071
[[3]]
[1] -0.008789275
[[4]]
[1] 0.009710126
[[5]]
[1] 0.008658747