r-当一行包含的元素多于数据帧中的列时,将该行添加到数据帧中



我想在数据帧中添加一个新行;然而,在我的例子中,这一行有更多的值。假设我有以下数据集:

> df <- data.frame(0,0,0)
> colnames(df) <- c("A","B","C")
> df
A B C
0 0 0

现在让我们有一个有4个元素的向量。

> x <- c(0,0,0,0)
> names(x) <- c("A","B","D","C")
> x
A B D C 
0 0 0 0 

我想把这个矢量添加到上面的数据帧中,这样

> df
A B C D
0 0 0 NA 
0 0 0 0 

有办法做到这一点吗?

使用rbindlist

library(data.table)
rbindlist(list(df, as.data.frame.list(x)), fill = TRUE)
A B C  D
1: 0 0 0 NA
2: 0 0 0  0

您可以使用-

library(dplyr)
df %>% bind_rows(x %>%
t %>%
as.data.frame())
#  A B C  D
#1 0 0 0 NA
#2 0 0 0  0

或者正如@Andrew Gustar提到的那样-

dplyr::bind_rows(df, x)

最新更新