假设我有一些像这样创建的数据
n <- 3
K <- 4
dat <- expand.grid(var1=1:n, var2=1:K)
dat看起来像这样:
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行,我想要&#39;间隙&#39;为了填补,现在第12排将成为第11排。
我知道这是两个数据框的列表。因此,建议here不适用,因为dat[[11]]<-NULL
将不执行任何操作,而dat[[2]]<-NULL
会从列表中删除第二个数据框
lapply(dat,"[",11)
让我可以访问相关元素,但我不知道如何删除它们。
答案 0 :(得分:2)
假设我们要从list
data.frame
中删除行,我们使用list
循环lapply
元素并使用数字索引删除行。
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)