检查列表中的对象是不是存在,如果在 R 中不存在则将其删除

Posted

技术标签:

【中文标题】检查列表中的对象是不是存在,如果在 R 中不存在则将其删除【英文标题】:Checking if an object in a list exists and then removing it if it does not in R检查列表中的对象是否存在,如果在 R 中不存在则将其删除 【发布时间】:2020-11-04 04:04:40 【问题描述】:

我有一个创建对象列表(data.frame)的脚本。然后将这些对象绑定到单个 .csv 文件中。问题是,由于空白元素,其中一个脚本会时不时地出现空白。反过来,其中一个对象将不存在。

我试过了

exist

但这并没有奏效。我尝试添加以下行但无法使其正常工作

object <- ifelse(exists(object)==True, object, c(NA,NA))

我所拥有的最终目标是

dataset <- do.call("rbind", list(object, object2, object3, object4))

问题是,如果其中一个对象不存在,此代码将不起作用。

【问题讨论】:

【参考方案1】:

您可以使用ls 并搜索具有模式的对象。它只会返回那些我们可以rbind存在的对象。

dataset <- do.call(rbind, mget(ls(pattern = 'object')))

【讨论】:

感谢您的回复。我想我应该指定我的对象是 data.frames。 如果对象是数据框,我认为不会有任何变化。这应该适用于全局环境中存在的任何对象。你试过答案吗?你有什么错误吗? 我得到了一个空返回。这些脚本从 RSS 提要中提取链接并返回一个包含 2 列的数据框(一列带有链接,一列带有 RSS 名称)。最终结果是创建一个列表。但是,当有一个没有新闻的提要时,就会有一个未定义的对象。然后我无法将数据框绑定在一起。 好的..但是如果您的对象是在全局环境中创建的,这应该可以工作。你能展示你正在使用的脚本吗(如果不是太长的话)?

以上是关于检查列表中的对象是不是存在,如果在 R 中不存在则将其删除的主要内容,如果未能解决你的问题,请参考以下文章

R - 检查 r 数据框行的任何列中是不是存在 NA,如果存在,则删除该行 [重复]

如何检查视图是不是存在,如果不存在则创建

检查值是不是存在的数组列表,如果存在则将 1 添加到字符串

在类的实例化期间如何检查该类的对象是不是已经存在,如果存在,则指向已经存在的对象? [复制]

检查对象值是不是存在于 Javascript 对象数组中,如果不存在则将新对象添加到数组

REST API 检查电子邮件是不是存在