我有一个数据框,我将调用" abs.data"包含265列(变量)。我有另一个数据框,我将称之为" corr.abs"包含" abs.data"中列的子集的更新数据。两个数据帧具有相等的行数,n = 551。我需要更换" abs.data"中的列。在" corr.abs"中正确观察列名匹配的位置。我试过以下
abs.samps <- colnames(abs.data) #vector of column names in abs. data
corr.abs.samps <- colnames(corr.abs) #vector of column names in corr.abs
abs.data[,which(abs.samps %in% corr.abs.samps==TRUE)] <- corr.abs[,which(corr.abs.samps %in% abs.samps==TRUE)] #replace columns in abs.data with correct observations in corr.abs where the column names are the same
当我运行最后一行代码的左侧和右侧时,R拉出右列,但无法用corr.abs中的正确数据替换abs.data中的列。有什么想法吗?
答案 0 :(得分:0)
您可以使用
找到常用列名comm_col <- intersect(colnames(abs.samps), colnames(corr.abs))
例如。你发现X2是常见的列
你可以先删除列,在这种情况下,你不希望使用子集的abs.samps中的X2
x<-subset(abs.samps, select = -X2)
然后您可以将新列(例如列名X2)添加到新数据框
y<-cbind(corr.abs$X2,x)