2
我有多個數據表,並且都有一個共同的列,名爲ID
。我有一個向量vec
,其中包含一組ID
值。 我想用lapply
於子集使用vec
我知道如何使用lapply
到子集數據表中的所有數據表,但我的問題是如何分配的子集化的結果返回到原始數據表 這裏是我的嘗試:子集多個數據表使用lapply
tables<-c("dt1","dt2","dt3","dt4")
lapply(mget(tables),function(x)x[ID %in% vec,])
以上提供了所有數據表的子集,但是如何將它們分配回dt1,dt2,dt3,dt4
?
我認爲'ID'應該是更新原有數據集對象'X $ ID',如果你不重視數據集(附不推薦)。此外,最好將它保留在列表中,而不是在全球環境中有許多對象。如果你堅持,你可以使用'list2env'。它。 'lst < - lapply(mget(tables),function(x)x [ID%in%vec,]); list2env(lst,envir = .GlobalEnv)' – akrun
謝謝akrun,我從來沒有使用過list2env,但似乎正在工作。一個問題:我在一個R閃亮的應用程序中使用它。將列表轉換爲全局環境中的對象 - 是否會干擾其他用戶會話? – Sri
我不理解「其他用戶會話」。在全球環境中擁有大量對象通常是不好的 – akrun