R:如何从该列表中的所有数据框中删除行?

标签 r

假设我有一些这样创建的数据

n <- 3
K <- 4
dat <- expand.grid(var1=1:n, var2=1:K)

数据看起来像这样:

    var1    var2
1     1      1
2     2      1
3     3      1
4     1      2
5     2      2
6     3      2 
7     1      3
8     2      3
9     3      3
10    1      4
11    2      4
12    3      4

我想同时从列表中的两个数据框中删除一些行。假设我想删除第 11 行,并且希望填充“间隙”,这样现在第 12 行将成为第 11 行。

我知道这是两个数据框的列表。因此建议here不适用,因为 dat[[11]]<-NULL不会做任何事情,而 dat[[2]]<-NULL将从列表中删除第二个数据框

lapply(dat,"[",11)让我访问相关元素,但我不知道如何删除它们。

最佳答案

假设我们要从 data.framelist 中删除行,我们使用 lapply 循环 list 元素 并使用数字索引删除行。

lapply(lst, function(x) x[-11,])

或者不使用匿名函数

lapply(lst, `[`, -11,)

“dat”是一个data.frame

is.data.frame(dat)
#[1] TRUE

如果我们想从“dat”中删除行,

dat[-11,]

如果row.names也需要更改

`row.names<-`(dat[-11,], NULL)

数据

lst <- list(dat, dat)

关于R:如何从该列表中的所有数据框中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185456/

相关文章:

r - 在巨大的数据表中计算 NA

r - 在 ggplot 上添加 p 值和 r [跟进]

r - 对于除当前级别之外的所有级别的每个级别的因子聚合值

r - 在 R 中对整齐数据同时执行多个方差分析

r - data.table `:=` 具有动态输入(现有列)和输出(新列名称)的赋值表达式

将图像大小调整为特定宽度(以厘米为单位),同时保持其纵横比

java - 系列线在 JFreeChart 中未正确显示

pROC 包 : usage of controls and cases with its context 中的 roc() 函数

r - open.connection(x, "rb") 错误 : fatal SSL/TLS alert

R - 具有多个管道的系统命令不返回标准输出