【发布时间】:2020-03-19 16:40:37
【问题描述】:
我有一个琐碎的问题,虽然我很难找到一个简单的答案。我有一个看起来像这样的数据表:
dt <- data.table(id= c(A,A,A,A,B,B,B,C,C,C), time=c(1,2,3,1,2,3,1,2,3), score = c(10,15,13,25,NA,NA,18,29,19))
dt
# id time score
# 1: A 1 NA
# 2: A 2 10
# 3: A 3 15
# 4: A 4 13
# 5: B 1 NA
# 6: B 2 25
# 7: B 3 NA
# 8: B 4 NA
# 9: C 1 18
# 10: C 2 29
# 11: C 3 NA
# 12: C 4 19
我想用“A”的值替换我的组“B”的缺失值。
最终的数据集应该是这样的
final
# id time score
# 1: A 1 NA
# 2: A 2 10
# 3: A 3 15
# 4: A 4 13
# 5: B 1 NA
# 6: B 2 25
# 7: B 3 15
# 8: B 4 13
# 9: C 1 18
# 10: C 2 29
# 11: C 3 NA
# 12: C 4 19
换句话说,以B为NA为条件,我想替换“A”的分数。请注意,“C”仍然是 NA。 我正在努力寻找一种干净的方法来使用 data.table 做到这一点。但是,如果使用其他方法更简单,它仍然可以。
非常感谢您的帮助
【问题讨论】:
-
您的可重现数据是一团糟(不可重现)。请修复。
标签: r data.table data-manipulation