因此,我有一长串对象,每个对象都有一个我要删除的插槽。具体来说,他们以重复的方式存储数据。但是为什么不重要的原因。

我的主要问题是关于什么是“正确”的方法。因此,这里是设置:

q <- list()
q$useless <- rnorm(100)
q$useful <- rnorm(100)

SampleList <- list(q,q,q)

因此,我有一个相同对象(或至少相同外观对象)的列表。我想删除无用的插槽。为什么,因为这对我没用。

我可以做一个循环:
for (i in 1:length(SampleList)){
   SampleList[[i]]$useless <- NULL
}

但是为什么lapply()版本不起作用。因此,我想问题是,我对快活不怎么了解。
lapply(SampleList, function(x){print(x$useless) })
SampleList<- lapply(SampleList, function(x){x$useless <- NULL }) #NO WORK

最佳答案

在lapply内部的函数不会返回任何内容,因此默认情况下将返回分配结果。您需要返回修改后的对象以使您的版本正常工作

SampleList <- lapply(SampleList, function(x){x$useless <- NULL; x})

关于r - 如何使用lappy删除R中列表中元素的插槽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11870147/

10-10 03:49