gpt4 book ai didi

r - 标准化/缩放数据集

转载 作者:行者123 更新时间:2023-12-04 21:16:18 34 4
gpt4 key购买 nike

我有以下数据集:

dat<-as.data.frame(rbind(10,8,2,7,10,10,1,10,14,9,2,6,10,8,10,8,10,10,7,11,10))
colnames(dat)<-"Score"
print(dat)
Score
10
8
2
7
10
10
1
10
14
9
2
6
10
8
10
8
10
10
7
11
10

这些是学生获得的考试成绩, 学生在此测试中最多可得 15 或最少 0 (顺便说一句,没有人得到最大值或最小值), 但是在此测试中获得的最低分数是 1,最高分数是 14 .

现在,我想将此数据标准化/缩放到 0 到 20 的范围。
如何在excel中实现这一点?还是在 R 中?
我的最终目标是将此测试中的分数标准化为上述比例,并将它们与另一组数据进行比较,其中最大值和最小值分别为 5 和 0。
如何正确比较这两个不同的缩放数据集?

我尝试了什么:
我在互联网上浏览了很多东西,并想出了这个:

enter image description here

我是从 wikipedia. 那里得到的
这种方法可靠吗?

最佳答案

在您的情况下,我会使用您在问题上发布的特征比例公式。 (x - min(x)) / (max(x) - min(x))基本上会将您的测试标记转换为 0-1 之间的范围。

由于您的边确实是 0 和 15 而不是 2 和 14,因此您的 min(x)=0和你的max(x)=15 .一旦你使用上面的方法得到了 0-1 之间的分数,你只需乘以 20。

IE。

tests <- read.table(header=T, file='clipboard')

tests2 <- (tests - 0) / (15 - 0) #or equally tests / 15

乘以 20 得到 0-20 之间的分数:
> tests2 * 20
Score
1 13.333333
2 10.666667
3 2.666667
4 9.333333
5 13.333333
6 13.333333
7 1.333333
8 13.333333
9 18.666667
10 12.000000
11 2.666667
12 8.000000
13 13.333333
14 10.666667
15 13.333333
16 10.666667
17 13.333333
18 13.333333
19 9.333333
20 14.666667
21 13.333333

结果直观,功能可靠。例如,得分为 14/15 的人应该得到最高分(并且非常接近 20),这里就是这种情况(转换后他们得分 18.6666)。

关于r - 标准化/缩放数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32590214/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com