【发布时间】:2020-03-22 01:24:52
【问题描述】:
我在 R 中工作并且正在使用 data.table。我有一个如下所示的数据集:
ID country_id weight
1 BGD 56
1 NA 57
1 NA 63
2 SA 12
2 NA 53
2 SA 54
如果 country_id 中的值是 NA,我需要将其替换为赋予相同 ID 的 non-na country_id 值。我希望数据集看起来像这样:
ID country_id weight
1 BGD 56
1 BGD 57
1 BGD 63
2 SA 12
2 SA 53
2 SA 54
此数据集包含数百万个 ID,因此无法手动修复每个 ID。
感谢您的帮助!
编辑:已解决!
我使用了以下代码: dt[, country_id := country_id[!is.na(country_id)][1], by = ID]
【问题讨论】:
-
或
dt[, country_id := country_id[!is.na(country_id)][1], by = ID]应该可以工作 -
@Andrew 谢谢!!这有效!
-
@sindri_baldur 这很公平,尽管我标记的骗子的 list of 29 questions linking 包括几个 data.table 。我试图找到很多其他人链接回的帖子。你想标记一个更具体的 data.table 吗?这肯定是一个已经讨论过的问题
-
您可能希望在
nafill和setnafill上跟踪此 GitHub issue 以获取字符列。
标签: r data.table