В наборе данных, который я анализирую, у меня есть выбор переменных, которые я хотел бы масштабировать до 1 стандартного отклонения, но не по центру. Я попробовал это, используя функцию scale()
в примере ниже.
require(tidyverse)
set.seed(1)
df <- data.frame(replicate(10, sample(0:1000, 1000, rep = TRUE)))
scaled_vars <- df %>%
select(X1 : X6) %>%
map(~scale(., center = F)
Однако из чтения документации scale()
, если center = F
, тогда выполняется масштабирование до среднего квадрата, а не стандартного отклонения. В документации говорится, что для масштабирования до стандартного отклонения без центрирования следует использовать код:
scale(x, center = FALSE, scale = apply(x, 2, sd, na.rm = T))
Однако я не могу заставить этот код работать в моей функции map
.
map(~scale(., center = F, scale = apply(., 2, sd, na.rm = T)
В сообщении об ошибке указывается, что объект 'x' не найден. Как я могу настроить свой код для достижения моей цели? Спасибо.