我有一个数据框,其中包含一些数据(声明)和两个附加列,其中包含行和列信息,例如:
Claim row Column
5000 2 10
等等
我有一个包含一些数据和 NA 的矩阵。我想使用行/列信息将 NA 替换为数据框中的数据。因此 5000 将替换当前位于第 2 行第 10 列的矩阵中的 NA。
有没有一种简单的方法可以用 R 实现这一点?
# If you have for example a matrix like this
m <- matrix(c(1:9), ncol=3, nrow=3)
# and information column such as:
info <- rbind(c(5000,2,2), c(8000,1,3))
# you can do like this:
m[info[,c(2:3)]] <- info[,1]
我想我已经找到了一种(不好的)方法:遍历矩阵中的所有行,选择矩阵中的所有 NA 元素,并将行列匹配的数据帧的子集分配给结果向量循环中的当前行,即这样的:
# Fill triangle
new_data <- data.frame(Claim = pred_claims, Column = cols, row = ro) # data frame
full_triangle <- auto_incr # matrix to be filled
for (i in 2:10) {
full_triangle[i,is.na(full_triangle[i,])] <- subset(new_data, row==i)$Claim
}