如何创建函数对dataframe指定特征的tous_genres等变量做归一化处理
已完成的基础归一化函数
你已经实现的单输入参数归一化函数normaliser_vecteur用于向量标准化,对应的最小-最大归一化公式为:I=(X-Xmin)/(Xmax-Xmin),原函数可修正运算顺序避免结果错误,修正后代码如下:
normaliser_vecteur <- function(x){ i <- (x - min(x)) / (max(x) - min(x)) return(i) }
原提问附带数据框前几行截图,展示了包含tous_genres、genre_f、genre_h等字段的数据集结构。
多特征归一化函数实现
你需要的normaliser_caracteristiques函数可通过如下代码实现,完全匹配需求:
library(dplyr) normaliser_caracteristiques <- function(Data, liste_caracteristiques, fn) { # 1. 过滤数据源,仅保留指定待处理特征+三个待归一化字段 processed_data <- Data %>% select(all_of(liste_caracteristiques), tous_genres, genre_f, genre_h) %>% # 2. 对三个目标字段分别应用归一化函数,生成新字段存储结果 mutate( norm_tous_genres = fn(tous_genres), norm_genre_f = fn(genre_f), norm_genre_h = fn(genre_h) ) return(processed_data) }
函数三个输入参数说明:
- Data:作为数据源的data.frame
- liste_caracteristiques:待归一化的特征向量
- fn:要使用的归一化函数的名称
调用示例
# 替换为实际数据集和特征列表即可调用 result <- normaliser_caracteristiques( Data = 你的数据集名称, liste_caracteristiques = c("特征1", "特征2"), fn = normaliser_vecteur )
内容的提问来源于stack exchange,提问作者p1077092
相关产品推荐
相关产品推荐

