【发布时间】:2021-11-03 22:08:39
【问题描述】:
我需要使用命名向量作为行来填充 R data.frame(或 data.table)。问题是用作行的命名向量通常没有所有变量。换句话说,通常命名向量的长度小于列数。向量中的变量名称与数据框的列名一致:
df <- data.frame(matrix(NA, 2, 3))
colnames(df) <- c("A", "B", "C")
obs1 <- c(A=2, B=4)
obs2 <- c(A=3, C=10)
我想要df如下:
> df
A B C
1 2 4 NA
2 3 NA 10
所以我想分别用 obs1 和 obs2 填充前两行。当我尝试这样做时,出现错误:
> df[1,] <- obs1
Error in `[<-.data.frame`(`*tmp*`, 1, , value = c(A = 2, B = 4)) :
replacement has 2 items, need 3
我怀疑已经有人问过类似的问题,但我找不到。有人知道如何使用 data.frame 或 data.table 吗?
【问题讨论】: