我在 R 中有一个 csv,它有下表:
df1
开始 | 效率 | 开始 | 效率 | 结尾 |
---|---|---|---|---|
9955 | 0 | 9955 | 25 | 5848 |
474909 | 0 | 474909 | 35 | 3948 |
90342 | 25 | 84384 | ||
94209 | 55 | 99393 |
我想用正确的效率替换与起始列对应的假零效率,以便我的最终结果如下所示:
df2
开始 | 效率 | 结尾 |
---|---|---|
9955 | 25 | 5848 |
474909 | 35 | 3948 |
90342 | 25 | 84384 |
94209 | 55 | 99393 |
df1 <- data.frame(
Start = c("9955", "474909", "90342", "94209"),
Efficiency = c("0", "0", "25", "55"),
Start = c("9955", "474909"),
Efficiency = c("25", "35"),
End = c("5848", "3948", "84384", "99393"), stringsAsFactors = F)
df2 <- data.frame(
Start = c("9955", "474909", "90342", "94209"),
Efficiency = c("25", "35", "25", "55"),
End = c("5848", "3948", "84384", "99393"), stringsAsFactors = F)
R 不喜欢具有相同名称的列,因此重复的列名称变为Start.1
和Efficiency.1
。您可以使用NA
和替换 0 值coalesce
。
library(dplyr)
df1 %>%
mutate(across(contains('Efficiency'), na_if, 0)) %>%
transmute(Start, Efficiency = coalesce(Efficiency, Efficiency.1))
# Start Efficiency
#1 9955 25
#2 474909 35
#3 90342 25
#4 94209 55
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句