我遇到了R data.table,它的功能给我留下了深刻的印象。我正在尝试应用我从Python / Scikit学到的知识。更具体地说,我尝试使用训练集的均值和标准差对测试集进行标准化。
# my training set
my_dt <- as.data.table(data.frame(list(a=c(1,2,3), b=c(3,4,5))))
# my testing set
my_dt2 <- as.data.table(data.frame(list(a=c(4,5,6), b=c(7,8,9))))
cols <- colnames(my_dt)
# I calculate the column means and standard deviation
my_dt_colmean <- my_dt[,lapply(.SD, mean), .SDcols=cols]
my_dt_colsd <- my_dt[,lapply(.SD, sd), .SDcols=cols]
# How to apply to the testing set. I tried to use the following but it is not correct.
my_dt2[, lapply(.SD, function(x) (x - my_dt_colmean[x])/my_dt_colsd[x]), .SDcols=cols]
谢谢您的帮助!
答案 0 :(得分:0)
在这里,我们可以使用(m3u8 or mpd)
Map
my_dt2[, Map(f1, .SD, my_dt_colmean, my_dt_colsd), .SDcols = cols]
# a b
#1: 2 3
#2: 3 4
#3: 4 5
在哪里
f1