У меня есть df
с 50 столбцами (X1, X2, X3 и т. Д. c.), Каждый из которых содержит оценки различных вопросов.
Небольшая версия:
X1 X2 X3 X4
1 10 15 17 12
2 5 2 5 5
3 15 20 10 16
4 10 15 15 20
Я хочу вычислить log10()
каждой оценки и затем вычесть медиану журналов для каждого вопроса.
Например, для вопроса 1: сумма (log (X1) -median1) / 4)
Я использовал следующий синтаксис для l oop над столбцами:
s <- vector("integer", ncol(df))
for(i in seq_along(df)) {
s[[i]] <- sum(log10(df[[i]]) - median(log10(df[[i]])/4))
Но если я проверю В результате, например, для X1, я получаю другое значение:
s1 <- df %>% mutate(log_e = log10(X1)) %>%
summarize(s = sum(log_e - median(log_e))/4)
В первой команде это 2.88
, а во второй -0.0312
.
Где ошибка?