Использование динамического именования при добавлении новых столбцов в таблицу - PullRequest
0 голосов
/ 26 марта 2019

При использовании bind_cols () или add_column я не могу использовать paste / paste0 для динамического именования столбцов внутри цикла.

for (i in 1:10){
abc %>%
add_column(paste0("new",i) = 1:6)
} 

Приведенный выше код выдает ошибку.Как динамически называть новые столбцы внутри цикла.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Предлагаемое решение будет несколько хрупким и, в конечном счете, бесполезным, поскольку оно выдает ошибку, если число строк в abc не равно длине вектора значений в RHS :=. Вместо этого следует использовать код, который создает или выбирает значения, которые соответствуют первому измерению структуры данных. И не менее важно: значение этого результата должно быть присвоено обратно abc. Иначе ничего долговечного не случится.

abc <- data.frame(a=1:3)
for (i in 1:10){
   abc <- abc %>%
            add_column(!! paste0("new",i) := 1:nrow(.))
} 
0 голосов
/ 26 марта 2019

Использование: =

for (i in 1:10){
abc %>%
add_column(!! paste0("new",i) := 1:6)
} 
...