簡體   English   中英

在R中的不同數據集中刪除多行

[英]Deleting multiple rows in different data sets in R

我正在使用多個data.frames ,當我想刪除所有data.frames特定行時遇到了問題。 我的問題類似於此處發布的問題 ,但是我無法使其在行上起作用:

lst <- list(dat1,dat2)
lapply(lst,`[`, !="A", TRUE)

假設我的表看起來像這樣,並且有多個行名,那么就不可能通過c("B", "C","D", ...)來提取除A以外的所有內容:


|   | 1 | 2 | 3 | 
|---|---|---|---|
| A |   |   |   | 
| B |   |   |   |
| A |   |   |   |

|   | 1 | 2 | 3 | 
|---|---|---|---|
| C |   |   |   | 
| A |   |   |   |
| A |   |   |   |

我將不勝感激! 謝謝

如果要在*apply調用中使用更復雜的函數,則使用匿名函數通常非常有用,甚至有必要。 好處是您可以構建應該應用於每個列表元素(在此為data.frames)的函數,就像在單個data.frame的情況下那樣。

如果您想按行名對常規data.frame的行進行子集化,則可以使用類似

mtcars[rownames(mtcars) != "Mazda RX4", ]

在您的lapply調用中,您將使用匿名函數以相同的方式進行操作,其中x表示每個列表元素:

lapply(lst, function(x) x[rownames(x) != "A", ])

暫無
暫無

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

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