Я объясню, что происходит в ближайшее время, но один из способов найти средние значения строк для ваших предполагаемых переменных:
immgen_dat %>%
mutate(Average = apply(.[, 4:8], 1, mean)) %>%
select(Average)
# Average
# 1 16.46
# 2 260.60
# 3 436.20
# 4 928.00
# 5 230.00
# 6 14.82
Чтобы увидеть, что происходит с вашим кодом, мы можем использовать функцию do
следующим образом:
df2 <- immgen_dat %>%
rowwise() %>%
do(Average = .$X.proB_CLP_BM.:.$X.proB_FrBC_BM.)
df2$Average[1]
# [[1]]
# [1] 15.6 16.6 17.6
Вы увидите, что :
генерирует последовательность из 15,6 с шагом 1. Вы можете увидеть это более подробно, набрав help(":")
. Так что в
immgen_dat %>%
rowwise() %>%
mutate(Average = mean(X.proB_CLP_BM.:X.proB_FrBC_BM.))
Вы вычисляете средние значения этих последовательностей.
Редактировать
Логарифм отношений - это, конечно, различия логарифмов (при условии, что знаменатель не равен нулю). Таким образом, вы пытаетесь найти отличия между log2 каждого из других числовых переменных от log2 Average
, вы можете сделать что-то вроде.
immgen_log2 <- immgen_dat
immgen_log2[,4:9] <- log(immgen_dat[,4:9])
immgen_log2[,4:8] <- sapply(immgen_log2[,4:8], func)