gpt4 book ai didi

r - 根据R中其他列中的条件将数字附加到列中的字符串

转载 作者:行者123 更新时间:2023-12-01 08:06:17 25 4
gpt4 key购买 nike

我想根据以下条件在 course 列中仅向 MATH 添加一个数字;对于每个 ID 如果 MATHoutput 列等于 pass 将下一个 的附加数字增加 1 >数学。这是一个例子:

df = read.table(text = 
'ID course outcome
10 MATH fail
10 PHYS pass
10 MATH pass
10 MATH fail
10 CHEM pass
11 MATH pass
11 PHYS fail
12 CMP pass
12 MATH fail
12 MATH fail
12 CHEM pass
12 MATH pass
12 MATH fail', header = T)


df_result = read.table(text =
'ID course outcome
10 MATH1 fail
10 PHYS pass
10 MATH1 pass
10 MATH2 fail
10 CHEM pass
11 MATH1 pass
11 PHYS fail
12 CMP pass
12 MATH1 fail
12 MATH1 fail
12 CHEM pass
12 MATH1 pass
12 MATH2 fail', header = T)

请帮我用R做

最佳答案

像这样的东西应该可以解决问题(使用 dplyr):

df %>% 
group_by(ID) %>%
mutate(math_pass_count = 1 + lag(cumsum(course == "MATH" & outcome == "pass"),
default = 0),
suffix = ifelse(course == "MATH", math_pass_count, ""),
course = paste0(course, suffix)) %>%
select(-math_pass_count, -suffix)

关于r - 根据R中其他列中的条件将数字附加到列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877383/

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