当行中包含的元素多于数据框中的列时,向数据框中添加一行
Adding a row to a data frame when the row contains more elements than there are columns in the data frame
我想向数据框中添加一个新行;但是,在我的例子中,这一行有更多的价值。假设我有以下数据集:
> 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
有办法吗?
您可以使用-
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)
使用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
我想向数据框中添加一个新行;但是,在我的例子中,这一行有更多的价值。假设我有以下数据集:
> 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
有办法吗?
您可以使用-
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)
使用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