我有一個大型的r數據框與接近500列。我想添加現有的縮放功能,並以列的方式嘗試不同的標準化功能。R:應用規範化函數列明智 - 大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"))
問題1的: 在這種情況下瓦爾只有兩個,但是當你有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列這適用於所有列。