我有一个包含82列的tibble,其中第一列是字符串,其余是数字。这里有一个只有3列的小例子:
df <- df=tibble(agg = c("a","b","c","d","e","f","g","h","i","j"),
x1=c(1,0,0,NA,0,1,1,NA,0,1),
x2=c(1,1,NA,1,1,0,NA,NA,0,1))
我想添加一行,其中有一个带有数值的矢量和一个字符串
"k", c(1:2)
如果只有3列,我可以使用add_row(agg="k",x1=1,x2=2(,但对于83列,这是不可行的。如有任何帮助,我们将不胜感激。
干杯Renger
创建一个向量并将其rbind
到原始数据帧。
df1 <- rbind(c("k", 1:2), df)
df1 <- type.convert(df1, as.is = TRUE)
df1
# A tibble: 11 x 3
# agg x1 x2
# <chr> <int> <int>
# 1 k 1 2
# 2 a 1 1
# 3 b 0 1
# 4 c 0 NA
# 5 d NA 1
# 6 e 0 1
# 7 f 1 0
# 8 g 1 NA
# 9 h NA NA
#10 i 0 0
#11 j 1 1
我们可以使用list
,list
可以有多种类型的元素,rbind
(或dplyr
中的bind_rows
(list
rbind(df, list("k", 1, 2))
# A tibble: 11 x 3
# agg x1 x2
# * <chr> <dbl> <dbl>
# 1 a 1 1
# 2 b 0 1
# 3 c 0 NA
# 4 d NA 1
# 5 e 0 1
# 6 f 1 0
# 7 g 1 NA
# 8 h NA NA
# 9 i 0 0
#10 j 1 1
#11 k 1 2
或使用bind_rows
library(dplyr)
bind_rows(df, list(agg = "k", x1 = 1, x2 = 2))
注意:在这里,我们以后不必更改的类型