gpt4 book ai didi

r - 如何将数据列转换为 z 分数?

转载 作者:行者123 更新时间:2023-12-01 15:47:18 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





creating z-scores

(3 个回答)


7年前关闭。




我有一个包含多列数据的制表符分隔文本文件。我想将每列中的值转换为 z 分数,以便我可以更好地比较每列中的分布。有谁知道一种快速的方法来做到这一点?我一直在学习 R 并认为 R 可能有一种有效的方法来做到这一点,但欢迎任何解决方案。我想使用 z 分数为明天的演示制作一些数字,因此速度至关重要。

表格示例:

CHROM   BIN_START   BIN_END N_VARIANTS  dataset1    dataset2    dataset3    dataset4    dataset5    dataset6    dataset7
chr1 1 500000 3881 0.0287298 0.0527506 0.0306643 0 0 0.12356 0
chr1 500001 1000000 3370 0.026538 0 0 0 0 0.0887265 0
chr1 1000001 1500000 2851 0.10893 0 0.0391224 0 0 0.0074585 0
chr1 1500001 2000000 3167 0.0612552 0 0 0 0 0.0527309 0
chr1 2000001 2500000 2592 0.154722 0 0.00540119 0 0 0.276087 0
chr1 2500001 3000000 4096 0.0214323 0.0521432 0 0.0505466 0.0367322 0.0147888 0
chr1 3000001 3500000 3825 0.100806 0 0.203501 0.00675269 0 0.10611 0.122551
chr1 3500001 4000000 2597 0 0.172489 0 0.127946 0.0976384 0.058526 0
chr1 4000001 4500000 3497 0 0.0280811 0 0.0137599 0 0.113574 0.0452258
chr1 4500001 5000000 4828 0 0.019744 0 0 0.0231157 0 0
chr1 5000001 5500000 4314 0.0247076 0 0 0.00943007 0.00186957 0.0240571 0.138595
chr1 5500001 6000000 3529 0.0168133 0 0.00544462 0 0 0 0
chr1 6000001 6500000 2396 0 0 0.0425213 0 0 0.0176949 0
chr1 6500001 7000000 4154 0 0.0827602 0 0 0 0.0583389 0
chr1 7000001 7500000 2590 0 0 0 0 0.106904 0 0.0885134
chr1 7500001 8000000 2939 0.108101 0.0472759 0.0201759 0.0169716 0.176171 0.0371988 0.154431
chr1 8000001 8500000 3820 0 0 0 0.0081009 0 0.0305172 0

最佳答案

试试 scale功能:默认情况下,它减去平均值并除以每列的 sd(即 Z 变换)。

假设您只想缩放 dataset列:

sc_cols <- grepl("^dataset",names(tt))
tt2 <- tt
tt2[sc_cols] <- scale(tt2[sc_cols])
zapsmall(sapply(tt2[,-1],mean))
## BIN_START BIN_END N_VARIANTS dataset1 dataset2 dataset3 dataset4
## 4000001 4500000 3438 0 0 0 0
## dataset5 dataset6 dataset7
## 0 0 0
sapply(tt2[,-1],sd)
## BIN_START BIN_END N_VARIANTS dataset1 dataset2 dataset3
## 2524876.2346 2524876.2346 709.2381 1.0000 1.0000 1.0000
## dataset4 dataset5 dataset6 dataset7
## 1.0000 1.0000 1.0000 1.0000

关于r - 如何将数据列转换为 z 分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27021000/

24 4 0
文章推荐: java - 将 Enumeration 转换为 Enumeration