【发布时间】:2021-01-15 19:35:27
【问题描述】:
我有一个数据框,总结了由序列号标识的不同设备的部署历史。随着时间的推移,设备 (serno) 可以被不同的项目使用,但在任何给定时间只能部署在一个项目上。我生成了一个名为used.elsewhere 的新列,用于标识该行中的 serno 是否在 df 中重复。例如:
project = c("a","b","c","c","c","d","e")
serno = c(1,2,2,2,3,3,3)
deployed = c(T,T,F,F,F,F,T)
used.elsewhere = c(F,T,T,T,T,T,T)
data.frame(project,serno,deployed,used.elsewhere)
project serno deployed used.elsewhere
1 a 1 TRUE FALSE
2 b 2 TRUE TRUE
3 c 2 FALSE TRUE
4 c 2 FALSE TRUE
5 c 3 FALSE TRUE
6 d 3 FALSE TRUE
7 e 3 TRUE TRUE
我想生成一个新列,如果没有部署 serno 值并在其他地方使用,则指示部署 serno 的项目:
project = c("a","b","c","c","c","d","e")
serno = c(1,2,2,2,3,3,3)
deployed = c(T,T,F,F,F,F,T)
used.elsewhere = c(F,T,T,T,T,T,T)
other.project = c(NA, NA, "b", "b", "e", "e", NA)
project serno deployed used.elsewhere other.project
1 a 1 TRUE FALSE <NA>
2 b 2 TRUE TRUE <NA>
3 c 2 FALSE TRUE b
4 c 2 FALSE TRUE b
5 c 3 FALSE TRUE e
6 d 3 FALSE TRUE e
7 e 3 TRUE TRUE <NA>
我假设我可以使用如下的ifelse 语句,但我不确定如何完成它。
df %>%
mutate(other.project = ifelse(deployed == F & used.elsewhere == T, ...
提前谢谢你!
【问题讨论】:
标签: r if-statement dplyr