gpt4 book ai didi

r - 为什么 `cut` 反对我的标签?

转载 作者:行者123 更新时间:2023-12-04 09:34:08 24 4
gpt4 key购买 nike

我正在尝试根据值所属的范围来标记值,例如您可能使用的评分作业方式。因此,如果我有一个平均测验分数的数据框和一个数值数据框,我将其用作为这些平均值分配成绩的下限:

grades <- read.table(text="Student Mean
Adam 94
Amanda 85.5
James 81
Noah 72.8333333333333
Zach 57.5", header = TRUE)

letters <- read.table(text = "Letter Cutoff
A 90
B 80
C 70
D 60
F 0", header = TRUE)

我以为我可以使用 cut为每个人分配一个等级。

我可以用 cut来解决这些问题,但我遇到了两个令人恼火的问题:

首先,这些截止值是最小值,而不是最大值,我看不出有什么方法可以改变它。其次, cut不想使用字母等级作为标签。如果我这样做:
cut(grades$Mean, 
breaks = letters$Cutoff,
labels = letters$Letter,
right = FALSE)

我收到一个错误, lengths of 'breaks' and 'labels' differ .是否可以使用 cut以这种方式为值分配标签?

最佳答案

breaks向量必须比 labels 长一个元素向量:每个类别都需要一个下限和上限。只需在 breaks 的末尾加上 100(上限)向量(如果您的分数恰好为 100,则可能需要为 100.5 ...)正如上面的评论中所指出的,您应该按升序进行休息...

cut(grades$Mean, 
breaks = c(rev(letters$Cutoff),100),
labels = rev(letters$Letter),
right = FALSE)
## [1] A B B C F
## Levels: F D C B A

关于r - 为什么 `cut` 反对我的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937694/

24 4 0