假设我有一些这样创建的数据
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.frame
的 list
中删除行,我们使用 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/