gpt4 book ai didi

r - 使用R将变量值编码为类

转载 作者:行者123 更新时间:2023-12-04 05:21:06 25 4
gpt4 key购买 nike

我有一组数据,其中需要将某些变量(数字)的值编码为3类。

我的数据集与此类似,但有60个以上的变量:

anim <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
wt <- c(181,179,180.5,201,201.5,245,246.4,189.3,301,354,369,205,199,394,231.3)
data <- data.frame(anim,wt)

> data
anim wt
1 1 181.0
2 2 179.0
3 3 180.5
4 4 201.0
5 5 201.5
6 6 245.0
7 7 246.4
8 8 189.3
9 9 301.0
10 10 354.0
11 11 369.0
12 12 205.0
13 13 199.0
14 14 394.0
15 15 231.3

我需要将变量“wt”的值编码为3类:(wt> = 179&wt <200)= 1; (wt> = 200&wt <300)= 2; (重量> 300)= 3

这应该给我这个
> data2
anim wt SWT
1 1 181.0 1
2 2 179.0 1
3 3 180.5 1
4 4 201.0 2
5 5 201.5 2
6 6 245.0 2
7 7 246.4 2
8 8 189.3 1
9 9 301.0 3
10 10 354.0 3
11 11 369.0 3
12 12 205.0 2
13 13 199.0 1
14 14 394.0 3
15 15 231.3 2

最佳答案

@Greg概述的cut方法可能是您想要的。需要注意的一件事是,默认情况下cut返回一个因子,您可以通过提供labels = FALSE以返回整数值来抑制该因子:

cut(data$wt, c(178, 200, 300, Inf), labels = FALSE)

或者,如果您的剪切不能自然中断,则可以使用 ifelse()。您可以“嵌套”类似于Excel的ifelse语句。我使用“with”来减少所需的输入:
data$group2 <- with(data, ifelse(wt >= 179 & wt < 200, 1, 
ifelse(wt >= 200 & wt < 300, 2, 3))
)

关于r - 使用R将变量值编码为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024792/

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