gpt4 book ai didi

r - 如果列采用特定值,则分配新变量

转载 作者:行者123 更新时间:2023-12-02 15:55:02 24 4
gpt4 key购买 nike

我正在尝试根据组标识符生成一个新变量来识别家庭中的“单亲 parent ”。如果在没有“头”和“配偶”的组中有一个“ child ”,我希望变量取值 1。我尝试使用 dplyr 但无法得出解决方案。

relation<-c("Head","Spouse","Child","Head","Spouse","Head","Child")
group<-c(1,1,1,2,2,3,3)
my_data<-as.data.frame(cbind(group,relation))

my_data %>%
group_by(group) %>%
mutate(single_parent = case_when(relation %in% "Child" & !(relation %in% "Head" & relation %in% "Spouse")~1))

# desired output
my_data$single_parent<-c(0,0,0,0,0,1,1)

感谢您的帮助。

最佳答案

我们可以做

library(dplyr)
my_data <- my_data %>%
group_by(group) %>%
mutate(single_parent = +((!all(c("Head", "Spouse") %in% relation &
'Child' %in% relation)) & 'Child' %in% relation)) %>%
ungroup

-输出

my_data
# A tibble: 7 × 3
group relation single_parent
<dbl> <chr> <int>
1 1 Head 0
2 1 Spouse 0
3 1 Child 0
4 2 Head 0
5 2 Spouse 0
6 3 Head 1
7 3 Child 1

数据

my_data <- data.frame(group, relation)

关于r - 如果列采用特定值,则分配新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71639794/

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