gpt4 book ai didi

r - 使用 dplyr mutate 函数替换多个值

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

在以下数据中,两个变量的水平都用数字编码

dat = read.csv("https://studio.edx.org/c4x/HarvardX/PH525.1x/asset/assoctest.csv")
head(dat)

我正在用字符串替换这些代码,以便于阅读和绘图。我可以使用 dplyr mutate 函数成功地做到这一点。
dat_char = mutate(dat, allele=replace(allele, allele==0, "AA/Aa")) %>% 
mutate(allele=replace(allele, allele==1, "aa")) %>%
mutate(case=replace(case, case==0, "control")) %>%
mutate(case=replace(case, case==1, "case"))

上面的代码运行得很好,但是编写起来很重复且繁琐。我确信有一种方法可以同时执行其中一些替换并精简代码,但我不确定如何。例如,我尝试使用向量作为查找和替换值。
dat_char = mutate(dat, allele=replace(allele, allele==c(0,1), c("AA/Aa", "aa"))) %>%
mutate(case=replace(case, case==c(0,1), c("control", "case")))
head(dat_char)

这只是一团糟,但它给人一种我正在努力实现的感觉。

最佳答案

您可以使用简单的 ifelse在这里,但如果您有多个值要替换,您可以考虑 recodecase_when :

library(dplyr)

dat %>%
mutate(allele = recode(allele, `0` = 'AA/Aa', `1` = 'aa'),
case = recode(case, `0` = 'control', `1` = 'case'))

关于r - 使用 dplyr mutate 函数替换多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62447298/

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