赞
踩
数据标准化与wilcox分析_wilcox检验的数据必须log2吗-CSDN博客
R语言中的Quantile normalisation 原理详解
在统计学中,分位数归一化是一种使两个分布在统计属性上相同的技术。要对两个或多个分布进行分位数归一化,而不使用参考分布,请像以前一样排序,然后设置为分布的平均值(通常为算术平均值)。因此,在所有情况下,最高值都成为最高值的平均值,第二高值成为第二高值的平均值,依此类推。
- df <- data.frame(one=c(5,2,3,4),
- two=c(4,1,4,2),
- three=c(3,4,6,8)
- )
- rownames(df) <- toupper(letters[1:4])
- df
-
- #确定每列的排名,从低到高:
- df_rank <- apply(df,2,rank,ties.method="min")
- df_rank
-
- #将原始矩阵从低到高排序:
- df_sorted <- data.frame(apply(df, 2, sort))
- df_sorted
-
- #计算均值:
- df_mean <- apply(df_sorted, 1, mean)
- df_mean
-
- #最后将均值代入我们的排名矩阵中。
-
- index_to_mean <- function(my_index, my_mean){
- return(my_mean[my_index])
- }
-
- df_final <- apply(df_rank, 2, index_to_mean, my_mean=df_mean)
- rownames(df_final) <- toupper(letters[1:4])
- df_final
-
Scale函数与normalize.quantiles()函数的异同:
1. Scale函数:
2. normalize.quantiles()函数:
异同点总结:
1. 相同点:都是用来对数据进行标准化处理的方法。
2. 不同点:
关于R语言的normalize.quantiles()函数的逆运算
在R语言中,normalize.quantiles()函数用于将数据进行分位数标准化,使得数据符合正态分布。但是,normalize.quantiles()函数是一个单向操作的函数,无法直接逆运算还原。
如果想要逆运算还原数据,可以尝试使用inverse.quantile()函数来逆向操作,实现将标准化后的数据还原为原始数据。下面是一个简单的示例代码:
```R # 假设data是经过normalize.quantiles()标准化后的数据 data_normalized <- normalize.quantiles(data) # 使用inverse.quantile()函数逆向操作还原数据 data_restored <- inverse.quantile(data_normalized) # 检查还原后的数据是否与原始数据一致 identical(data, data_restored) ```
需要注意的是,逆向操作可能会存在一定的误差,具体效果取决于数据的特性和标准化的方法。在实际应用中,建议在还原数据后进行一定的验证和检查。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。