此問題涉及R.我有兩個dataframes,這個最小的可重複的例子表示:合併基於正則表達式的條件dataframes
a <- data.frame(geocode_selector = c("36005", "36047", "36061", "36081", "36085"), county_name = c("Bronx", "Kings", "New York", "Queens", "Richmond"))
b <- data.frame(geocode = c("360050002001002", "360850323001019"), jobs = c("4", "204"))
一個例子來幫助傳達我試圖執行非常具體的操作:geocode_selector
數據幀中的列a
包含紐約州五個區的FIPS縣代碼。數據框b
中的geocode
列是特定人口普查區塊的15位ID。一個geocode
匹配的前五個數字更一般geocode_selector
,說明人口普查塊位於其中縣。我想將列添加到b
指定哪個縣每次普查塊落入下,基於其geocode_selector
每個geocode
在b
比賽用。
通常,我試圖根據正則表達式條件合併數據框。理想情況下,我想進行全面合併,將a
的所有列轉換爲b
,而不僅僅是county_name
。
我試圖沿着線的東西:
b[, "county_name"] <- NA
for (i in 1:nrow(b)) {
for (j in 1:nrow(a)) {.
if (grepl(data.a$geocode_selector[j], b$geocode[i]) == TRUE) {
b$county_name[i] <- a$county_name[j]
}
}
}
,但它採取了一個非常長的時間對大數據集的我其實處理和成品是不是我想要的。
任何有關如何根據正則表達式條件合併數據框的見解將非常感謝。
'如果(... == TRUE)'是沒有意義的代碼:只寫'如果(...)',沒有必要*日益*寫'== TRUE':這是字面上'如果'已經。 –