r-将一行添加到由字符串和数字组成的tibble中



我有一个包含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

我们可以使用listlist可以有多种类型的元素,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))

注意:在这里,我们以后不必更改的类型

最新更新