根据列对行进行排序?

MK894

我在 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.1Efficiency.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章