gpt4 book ai didi

r - 在 dplyr 中有条件地改变数据

转载 作者:行者123 更新时间:2023-12-04 12:26:46 24 4
gpt4 key购买 nike

我试图通过根据标识符进行划分来改变数据。
例如,我想变异 mass在以下数据中。如果是深度 10,我想除以 2。如果是深度 20,我想除以 3。

day    year    depth    mass 
1 2008 10 13
2 2008 10 15
1 2008 20 14
2 2008 20 12
1 2009 10 14
2 2009 10 16
1 2009 20 12
2 2009 20 18

除法导致:
day    year    depth    mass 
1 2008 10 6.5
1 2008 10 6.5
2 2008 10 7.5
2 2008 10 7.5
1 2008 20 4.6
1 2008 20 4.6
2 2008 20 4
2 2008 20 4
1 2009 10 7
1 2009 10 7
2 2009 10 8
2 2009 10 8
1 2009 20 4
1 2009 20 4
2 2009 20 6
2 2009 20 6

我正在尝试 ifelse按照以下方式,但得到一个错误“未使用的参数(c(13、15、14...)”
df%>% 
group_by(day, year, depth) %>%
bind_rows(., .) %>%
mutate(mass = ifelse(depth == 10), mass/2,
ifelse(depth == 20), mass/3)%>%
arrange(day, year, depth, mass)

最佳答案

我发现您在使用 ifelse 时有两个错误.你在哪里ifelse(depth == 10) , 你只给了 ifelse一个参数需要三个。去掉右括号,你就有了一个好的开始。

您的第二个错误是您没有给出任何指示如果第二个 ifelse 该怎么做条件解析为 FALSE .在下面的代码中,我分配了 NA到那种情况。但是,我不确定这是否是您想要的行为,因此您应该将其更改为适合您的需求。

df%>% 
group_by(day, year, depth) %>%
bind_rows(., .) %>%
mutate(mass = ifelse(test = (depth == 10),
yes = mass/2,
no = ifelse(test = (depth == 20),
yes = mass/3,
no = NA))) %>%
arrange(day, year, depth, mass)

关于r - 在 dplyr 中有条件地改变数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34643633/

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