本文介绍了如何将多列添加到Tibble?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要向Tibble添加多个空列。新列的名称存储在"column nsToAdd"中
> columnsToAdd
[1] "column1" "column2" "column3" "column4" "column5"
当我运行以下代码行时,.
library(dplyr)
someTibble <- tibble(name = paste("Name", 1:10))
columnsToAdd <- paste("column", 1:30, sep = "")
someTibble %>%
tibble::add_column(columnsToAdd = NA)
.我得到的结果是.
# A tibble: 10 x 2
name columnsToAdd
<chr> <lgl>
1 Name 1 NA
2 Name 2 NA
3 Name 3 NA
4 Name 4 NA
5 Name 5 NA
6 Name 6 NA
7 Name 7 NA
8 Name 8 NA
9 Name 9 NA
10 Name 10 NA
.相反,我希望获得以下结果:
# A tibble: 10 x 6
name column1 column2 column3 column4 column5
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Name 1 NA NA NA NA NA
2 Name 2 NA NA NA NA NA
3 Name 3 NA NA NA NA NA
4 Name 4 NA NA NA NA NA
5 Name 5 NA NA NA NA NA
6 Name 6 NA NA NA NA NA
7 Name 7 NA NA NA NA NA
8 Name 8 NA NA NA NA NA
9 Name 9 NA NA NA NA NA
10 Name 10 NA NA NA NA NA
推荐答案
您在tibble::add_column(columnsToAdd = NA)
中看到的是dplyr和tidyr引入的准东西求值。如果您检查定义:
> args(add_column)
function (.data, ..., .before = NULL, .after = NULL)
您将看到它并不期望某个特定的变量。从字面上看,它需要实际的变量名,不带引号。
另一种完全不同的方法是创建一个矩阵(或data.frame,任何您喜欢的东西),并将其拍打到someTibble
:
extra <- matrix(NA_real_, nrow=nrow(someTibble), ncol=length(columnsToAdd), dimnames=list(NULL, columnsToAdd))
dplyr::bind_cols(someTibble, as.data.frame(extra))
这篇关于如何将多列添加到Tibble?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!