簡體   English   中英

根據 R 中的名稱從 data.frames 列表中刪除 data.frame

[英]Drop a data.frame from a list of data.frames based on names in R

我有一個 data.frames 列表。 我想知道如何刪除此列表中名稱為以下任何一種的 data.frames: c("out", "Name")

我試過r[names(r),= c("out", "Name")]沒有成功。

r <- list(
     data.frame(Name = rep("Jacob", 6), 
               X = c(2,2,1,1,NA, NA), 
               Y = c(1,1,1,2,1,NA), 
               Z = rep(3, 6), 
             out = rep(1, 6)), 

 data.frame(Name = rep("Jon", 6), 
               X = c(1,NA,3,1,NA,NA), 
               Y = c(1,1,1,2,NA,NA), 
               Z = rep(2, 6), 
             out = rep(1, 6)), 

  data.frame(Name = rep("Jon", 6), 
                X = c(1,NA,3,1,NA,NA), 
                Y = c(1,1,1,2,2,NA), 
                Z = rep(2, 6), 
              out = rep(2, 6)), 

  data.frame(Name = rep("Jim", 6), 
                X = c(1,NA,3,1,NA,NA), 
                Y = c(1,1,1,2,2,NA), 
                Z = rep(2, 6), 
              out = rep(1, 6)))

我們可以使用%in%

r[!names(r) %in% c("out", "Name")]

隨着更新的數據

lapply(r, function(x) x[setdiff(names(x), c("out", "Name"))])

嘗試這個:

r[names(r)!='out'][names(r[names(r)!='out'])!='Name']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM