gpt4 book ai didi

r - 引用其他列的条件更新

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

我正在尝试在 R 中对一些形状类似于下面给出的数据进行条件更新。

规则是,当类别 Z == 0 的值时,将其设置为相同类型中类别 X 的值。

作为 R 新手并且没有很多时间,我最终使用了循环,因为我看不到如何使用 by() 更新值,但我希望有一个更明显的解决方案。

Type    Category    Value
A X 5
A Y 2
A Z 3
B X 6
B Y 2
B Z 0
C X 7
C Y 2
C Z 0

我想要的输出是:
Type    Category    Value
A X 5
A Y 2
A Z 3 <- remains 3
B X 6
B Y 2
B Z 6 <- updated to 6
C X 7
C Y 2
C Z 7 <- updated to 7

提前致谢。

最佳答案

这是使用 dplyr 包的解决方案:

library(dplyr)

# Assume your data frame is called "dat"
dat = dat %>% group_by(Type) %>%
mutate(ValueNew = ifelse(Category=="Z" & Value==0, Value[Category=="X"], Value))

Type Category Value ValueNew
1 A X 5 5
2 A Y 2 2
3 A Z 3 3
4 B X 6 6
5 B Y 2 2
6 B Z 0 6
7 C X 7 7
8 C Y 2 2
9 C Z 0 7

关于r - 引用其他列的条件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043087/

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