У меня есть большой r data.frame с около 500 столбцами. Я хочу добавить существующую функцию масштабирования, а также попробовать различную функцию нормализации в графе по разумным правилам.R: Применение функции нормализации column wise - large DataFrame/DataTable
В существующей шкалы функции
library(dplyr)
set.seed(1234)
dat <- data.frame(x = rnorm(10, 30, .2),
y = runif(10, 3, 5),
z = runif(10, 10, 20), k = runif(10, 5, 10))
dat %>% mutate_each_(funs(scale),vars=c("y","z"))
Question1: В этом случае переменными являются только два, но если у вас есть 500 столбцов нормализуется Что лучше? Я попробовал следующее:
dnot <- c("y", "z")
dat %>% mutate_each_(funs(scale),vars=!(names(dat) %in% dnot))
Ошибка:
Error in UseMethod("as.lazy_dots") :
no applicable method for 'as.lazy_dots' applied to an object of class "logical"
Вопрос2: Вместо того, чтобы использовать встроенную функцию масштаба, я хочу, чтобы применить свою собственную функцию для нормализации кадра данных.
пример: я следующая функция
normalized_columns <- function(x)
{
r <- (x/sum(x))
}
Вопрос2: Как я могу эффективно применить это ко всем столбцам, оставив только 3 или 4 колонки.