【问题标题】:Remove rows based on the rownames in list [duplicate]根据列表中的行名删除行[重复]
【发布时间】:2020-11-24 08:23:06
【问题描述】:

我有一个列表,我想从data 中删除所有带有"Volvo 142E" 的行。任何帮助都会得到帮助。

data("mtcars")
rownames(mtcars)
data <- list(mtcars ,mtcars, mtcars, mtcars);data

out1 <- NULL
for(i in seq_along(data)) {
  out1[[i]] <- data[[i]][!(rownames(data[[i]]) %in% data[[i]] == "Volvo 142E" ), ]
}
out1

提前多谢

【问题讨论】:

  • 试试lapply(data, function(i){rownames(i) &lt;- NULL; i})

标签: r for-loop data-manipulation


【解决方案1】:

您可以使用lapply 遍历列表,然后对行进行子集化:

lapply(data,function(x) x[rownames(x) != "Volvo 142E", ])

等效的“整洁”选项是:

library(dplyr)
library(purrr)

map(data, ~.x %>% filter(rownames(.) != "Volvo 142E"))

【讨论】:

  • out1
猜你喜欢
  • 2017-08-08
  • 1970-01-01
  • 2011-04-21
  • 2019-05-29
  • 2017-07-06
  • 1970-01-01
  • 2023-03-21
  • 2021-06-24
  • 2022-01-23
相关资源
最近更新 更多