gpt4 book ai didi

r - 在 R 中使用数组派生新变量

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

考虑到我们有如下数据框,它生成了一个数据集,现在我想根据这些变量“MPD1FL”、“MPD2FL”、“MPD3FL”导出一个新变量 MPDFL。因此,如果这些变量中的任何一个有 Y,那么 MPDFL 应该有 Y,否则 N。

data <- data.frame(ID=c(1,2,3,4,5,6),
MPD1FL=c('N','Y','Y','N','N','N'),
MPD2FL=c('Y','N','N','Y','N','N'),
MPD3FL=c('N','N','N','Y','N','Y'))

ID MPD1FL MPD2FL MPD3FL
<dbl> <fct> <fct> <fct>
1 N Y N
2 Y N N
3 Y N N
4 N Y Y
5 N N N
6 N N Y

我尝试了如下代码,但没有成功,感谢您对 R 代码的帮助

val <- c('MPD1FL','MPD2FL','MPD3FL')
for (val in val) {
data2 <- data %>% mutate(MPDFL=if_else(val=='Y','Y','N'))
}

data2

谢谢,

锯齿

最佳答案

这是一个基本的 R 解决方案。

data2 <- data
data2$MPDFL <- c("N", "Y")[(rowSums(data[-1] == "Y") > 0L) + 1L]

data2
# ID MPD1FL MPD2FL MPD3FL MPDFL
#1 1 N Y N Y
#2 2 Y N N Y
#3 3 Y N N Y
#4 4 N Y Y Y
#5 5 N N N N
#6 6 N N Y Y

关于r - 在 R 中使用数组派生新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67807006/

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