2
我在嘗試合併具有不同名稱但具有相同變量標籤(從SPSS文件導入)的所有列。我試圖去解決這個問題的方法是運行一些檢查以確保列既不是NA
也不是相同的,然後粘貼j
到i
並刪除j
。然而,這似乎並沒有改變我的數據框。我在這裏做錯了什麼?合併和刪除R中的列
note-- mergedSet是從set1和set2綁定在一起的行,每個行都包含標籤。
for(i in colnames(set1)) {
for(j in colnames(set2)){
if(!is.na(attributes(set1)$variable.labels[i]) &&
!is.na(attributes(set2)$variable.labels[j])) {
if(attributes(set1)$variable.labels[i] ==
attributes(set2)$variable.labels[j]) {
if(i != j) {
mergedSet <- within(mergedSet, i <- paste(i,j))
mergedSet <- within(mergedSet, rm(j))
}
}
}
}
}
您試過合併(df1,imported_df,by =「key variable」,all.x = TRUE)? –
我同意@CristóbalAlcázar,因爲必須有更好的解決方案。此外,爲什麼不使用「normal」R語法來分配變量,即'mergedSet $ i < - paste(mergedSet $ i,mergedSet $ j)'和'mergedSet $ j < - NULL'?你是否包含了一個支票,你實際上「到達」了代碼塊?例如。您可以在兩條關鍵線之前添加一個打印(「這裏」),以確定您沒有被任何檢查踢出(如果沒有玩具數據集,就很難檢查!)。 – friep
我想你的問題是存在許多列,你不能直接說col x_2 id等於col y_23。也許對於每個分類變量(首先減少問題)迭代所有其他數據分類變量,並且如果唯一標籤相同,則創建一對列。然後規範名稱。 –