gpt4 book ai didi

r - 在 R 中,如何根据另一个数据框中的范围对一个数据框中的值进行分类?

转载 作者:行者123 更新时间:2023-12-04 14:57:02 25 4
gpt4 key购买 nike

一般来说,如何根据另一个数据框中的因子值对数据框的一列中的值进行分类?例如,给定 df1 和 df2,我想生成 df3(或更新 df1):

> df1
NewAge
1 5
2 25
3 18
4 9
5 43
6 15
7 17

> df2
AgeStart AgeEnd AgeType
1 0 10 A
2 10 20 B
3 20 30 A
4 30 40 B
5 40 50 A

我想要 df3 为:
NewAge Type
5 A
25 A
18 B
9 A
43 A
15 B
17 B

我使用 cut() 来生成间隔
df2_cut <- data.frame(NewAge, 
"AgeRange" = cut(NewAge,
breaks=AgeStart,
right=F,
include.lowest=T))
> df2_cut
NewAge AgeRange
1 5 [0,10)
2 25 [20,30)
3 18 [10,20)
4 9 [0,10)
5 43 [40,50]
6 15 [10,20)
7 17 [10,20)

但我不知道如何分类 df2_cut值根据间隔类型(即 A 或 B)。

最佳答案

我们可以使用 findInterval .输出将是一个数字索引,我们用它来从“AgeType”中获取相应的元素。

df3 <- transform(df1, Type=df2$AgeType[findInterval(NewAge, df2$AgeStart)])
df3
# NewAge Type
#1 5 A
#2 25 A
#3 18 B
#4 9 A
#5 43 A
#6 15 B
#7 17 B

或与 labels=FALSEcut

关于r - 在 R 中,如何根据另一个数据框中的范围对一个数据框中的值进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427823/

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