如果列名匹配,我想用另一个数据框中的列替换数据框的某些列:
我从名为train
的data.frame中提取了一些数字列。然后我制作了第二个名为all_box
的data.frame,其中包含train
的逐列boxcox变换。在那之后,我想用相同的名字替换原始数据(火车)的部分推算数据(all_box)。我的代码是这个..
如果colnames相同或者不想更改任何值,我试图更改值。
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'是原始数据的第一列的名称,我不想做任何更改)
在这种情况下不应使用ifelse
函数。试试这个:
train2 <- train
my_cols <- colnames(train)[colnames(train) %in% colnames(all_box)]
train2[, my_cols] <- all_box[, my_cols]