Добавить пустые столбцы в dataframe с указанными именами из вектора

У меня есть dataframe, df, с уже числом столбцов данных. У меня есть вектор, namevector, полный строк. Мне нужны пустые столбцы, добавленные в df, с именами столбцов из namevector.

Я пытаюсь добавить столбцы с этим циклом for, итерации по каждой строке в namevector.

for (i in length(namevector)) { df[, i] <- NA } 

но я остался с этой ошибкой:

 Error in `[<-.data.frame`(`*tmp*`, , i, value = NA) : new columns would leave holes after existing columns 

В качестве альтернативы, я думал о создании пустого фрейма с правильными именами, а затем объединять два файла данных вместе, но я не уверен, как это сделать.

Как я могу это решить?

Проблема с вашим кодом находится в строке:

 for(i in length(namevector)) 

Вы должны спросить себя: что такое length(namevector) ? Это одно число. Поэтому, по сути, вы говорите:

 for(i in 11) df[,i] <- NA 

Или проще:

 df[,11] <- NA 

Вот почему вы получаете сообщение об ошибке. Вы хотите:

 for(i in namevector) df[,i] <- NA 

Или проще:

 df[,namevector] <- NA 
 set.seed(1) example <- data.frame(col1 = rnorm(10, 0, 1), col2 = rnorm(10, 2, 3)) namevector <- c("col3", "col4") example[ , namevector] <- NA example # col1 col2 col3 col4 # 1 -0.6264538 6.5353435 NA NA # 2 0.1836433 3.1695297 NA NA # 3 -0.8356286 0.1362783 NA NA # 4 1.5952808 -4.6440997 NA NA # 5 0.3295078 5.3747928 NA NA # 6 -0.8204684 1.8651992 NA NA # 7 0.4874291 1.9514292 NA NA # 8 0.7383247 4.8315086 NA NA # 9 0.5757814 4.4636636 NA NA # 10 -0.3053884 3.7817040 NA NA 

Просто даю, как внизу работает для меня

dataframe [, “newName”] <- NA

Не забудьте добавить «” для новой строки имени.

Может быть

 df <- do.call("cbind", list(df, rep(list(NA),length(namevector)))) colnames(df)[-1*(1:(ncol(df) - length(namevector)))] <- namevector 
  • geom_boxplot с предварительно вычисленными значениями
  • Добавление объектов в пространство имен пакетов
  • Как переименовать файлы с помощью R?
  • Выбор подмножества столбцов в таблице данных.
  • Функция MATCH в r
  • ggplot2, ось не отображается после использования темы (axis.line = element_line ())
  • Удаление столбцов из фрейма данных, где ВСЕ значения NA
  • Как выбрать строки с максимальными значениями в каждой группе с помощью dplyr?
  • Как нарисовать коробку со значительным уровнем?
  • Вставить строки для отсутствующих дат / раз
  • Объединить много кадров данных из файлов csv, когда подразумевается столбец идентификатора?
  • Давайте будем гением компьютера.