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

Я хотел бы заменить определенные столбцы фрейма данных столбцами из другого фрейма данных, если имена столбцов совпадают:

Я извлек несколько числовых столбцов из data.frame с именем train. Затем я создал второй data.frame с именем all_box, который содержит преобразование boxcox по столбцам train. После этого я хочу заменить эти вмененные данные (all_box) частью исходных данных (поезд), найденных на те же имена. Мой код был таким ..

Я пытался изменить значение, если имена столбцов совпадают или не хотели менять ни одного из них.

for(i in 1:length(train)){

  train[,i]<-ifelse(colnames(train)[i]%in%colnames(all_box),

                    dplyr::select(all_box,colnames(train[i])),
                    dplyr::select(train,colnames(train[i])))
  }

но я получаю ошибку:

Ошибка: неизвестный столбец id Позвоните rlang::last_error(), чтобы увидеть трассировка

(столбец 'id' - это имя первого столбца исходных данных, в которые я не хочу вносить никаких изменений)

1 Ответ

0 голосов
/ 08 апреля 2019

функция ifelse не должна использоваться в этом случае.Попробуйте это:

train2 <- train
my_cols <- colnames(train)[colnames(train) %in% colnames(all_box)]
train2[, my_cols] <- all_box[, my_cols]
...