gpt4 book ai didi

r - 根据 R 中另一个变量的条件重新编码变量的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-02 03:28:27 26 4
gpt4 key购买 nike

愚蠢的例子 df,“猫”:

species color tail_length
calico brown 6
calico gray 6
tabby multi 5
tabby brown 5

假设我想创建一个新变量 personality。此处的值将根据 tail_length 重新编码,但也将取决于猫的种类和颜色。所以理想的最终 df 应该是这样的:

species color tail_length personality
calico brown 6 mean
calico gray 6 nice
tabby multi 5 mean
tabby brown 5 nice

目前我使用的代码:

library(car)
cat$personality<-recode(cat$tail_length, "'6'==mean, '5'==nice")
cat$personality[cat$species=="calico" & cat$color=="brown"] <- mean
cat$personality[cat$species=="calico" & cat$color=="gray"] <- nice
cat$personality[cat$species=="tabby" & cat$color=="multi"]<- mean
cat$personality[cat$species=="tabby" & cat$color=="brown"]<-nice

我的主要问题是:是否有更简单的方法来执行此操作/将这些功能合并为一个?鉴于我是即时制作此示例数据的,请在回答时持保留意见。谢谢!作为 R 初学者,我非常感谢您的帮助。

最佳答案

这是使用 qdapqdapTools(我维护的 CRAN 包)的一种方法:

library(qdap); library(qdapTools)

key <- list(
mean = c( "calico.gray", "tabby.brown"),
nice = c("calico.brown", "tabby.multi")
)

dat[["personality"]] <- paste2(dat[1:2]) %l% key
dat

## species color tail_length personality
## 1 calico brown 6 nice
## 2 calico gray 6 mean
## 3 tabby multi 5 nice
## 4 tabby brown 5 mean

基本上,您创建的键是基于组合列的命名列表。然后 %l% 充当哈希表查找。

关于r - 根据 R 中另一个变量的条件重新编码变量的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28890974/

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