gpt4 book ai didi

r - 使用 ifelse 转换 R 中的列

转载 作者:行者123 更新时间:2023-12-05 09:14:51 24 4
gpt4 key购买 nike

我有一个包含一列数字的数据框。

在一个单独的列中,我想根据数字打印数字是“小于 10”、“10 到 20 之间”还是“20 到 30 之间”。

到目前为止,我已经生成了这段代码,但目前还行不通,任何人都可以建议我如何修改它以使其行之有效吗?

#create some data
data<-data.frame(number=(1:40))

#ifelse statement
data$words<-
ifelse(data[,"number"]>=0&&<=9,"less than 10",
ifelse(data[,"number"]>=10&&<=20,"between 10 and 20",
ifelse(data[,"number"]>=20&&<=30,"between 20 and 30", "other")))

最佳答案

您可以使用基于 R 的 cut,但请注意它使 words 变量成为一个因素。您只需要设置适当的间隔(这就是为什么我使用 30.5 等来提高可读性)。顺便说一句,在您的示例中,您编码的 20 应该被重新编码为“10 到 20 之间”和“20 到 30 之间”,这是行不通的。

data$words <- cut(data$number, c(0,9.5,20.5,30.5,40), c("less than 10", "between 10 and 20", "between 20 and 30", "other"))
data

关于r - 使用 ifelse 转换 R 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53414062/

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