【发布时间】:2017-03-23 14:23:07
【问题描述】:
我已经习惯于为数据添加缺失的案例,但是这个用例让我无法理解。
我有许多数据框(略有不同),例如:
> t1
3 4 5
2 1 0 0
3 0 2 2
4 2 6 4
5 1 2 1
structure(list(`3` = c(1L, 0L, 2L, 1L), `4` = c(0L, 2L, 6L, 2L
), `5` = c(0L, 2L, 4L, 1L)), .Names = c("3", "4", "5"), row.names = c("2",
"3", "4", "5"), class = "data.frame")
行名和列名应该从 1:5 开始,显然,这些都缺少设置为 NA 的单元格值。对于上面的示例,这将给出:
> t1
1 2 3 4 5
1 NA NA NA NA NA
2 NA NA 1 0 0
3 NA NA 0 2 2
4 NA NA 2 6 4
5 NA NA 1 2 1
在每种情况下,都可能缺少任何一行或多行 AND/OR 列。
我可以使用 Josh O'Brien here 描述的方法轻松获取缺失的列,但我缺少 row 方法。
谁能帮忙?
【问题讨论】:
-
在
base R,你可以做m1 <- matrix(NA, ncol=5, nrow=5, dimnames = list(1:5, 1:5)); m1[row.names(t1), colnames(t1)] <- unlist(t1) -
哇。这是一种超级有效的方法。我刚刚设法弄清楚如何在行名上使用 setdiff 。但仍然是 1 行脚本而不是大约 8 行!谢谢阿克伦(一如既往)