पर एक और डेटा तालिका के साथ एक सूची के सभी तत्वों को मर्ज करने के लिए कैसे मैं निम्नलिखित डेटा है:हालत
library(data.table)
dt1 <- data.table(var1 = c("wk1","wk1","wk2"),
var2 = c(1,2,3))
dt2 <- data.table(var3 = c("a","b","c"),
var2 = c(1,2,3))
lista <- list(dt1,dt2)
dt_main <- data.table(var1 = c("wk1","wk2"),
var4 = c(100,200))
मैं merge
करना चाहते lista
के सभी तत्वों को जो dt_main
data.table
साथ चर var1
होते हैं, में तो अंत मैं lista
चाहते हैं इस तरह देखने के लिए:
dt1 <- data.table(var1 = c("wk1","wk1","wk2"),
var2 = c(1,2,3),
var4 = c(100,100,200))
dt2 <- data.table(var3 = c("a","b","c"),
var2 = c(1,2,3))
lista <- list(dt1,dt2)
मैं
की कोशिश की 0mapply(function(X,Y){
if("var1"%in%names(X)){
X <- merge(X,Y,by="var1")
}
},X=lista,Y=dt_main)
लेकिन यह काम नहीं करता। कोई मदद ?
थोड़ा देर हो चुकी है, बी ut मैं एक अलग भिन्नता के साथ आया था: 'lapply (लिस्टा, समारोह (x) यदि ('var'% नाम में% (x)) एक्स [dt_main, = 'var1' पर, var4: = var4] अन्य सभी एक्स) ' – Jaap
मर्ज करने का एक और अच्छा तरीका :)। उत्तर @ जैप के रूप में पोस्ट करना चाहते हैं? – LyzandeR
किया :-) (और मेरी समाधान में एक प्रकार सही) – Jaap