编写脚本以忽略在r中找不到的对象 [英] Write script to ignore objects which can’t be found in r

查看:0
本文介绍了编写脚本以忽略在r中找不到的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在r中构造一个脚本,以强制它忽略找不到的对象。

我的脚本的简化版本如下

试用<;-sum(a,b,c,d,e)

A-e是通过计算数据框中列的总和生成的数值向量。

我的问题是我想在多个不同的条件下使用相同的脚本(并且拥有比a-e多得多的对象)。对于这些情况中的一些,对象a-e中的一些可能不存在。因此,%r返回错误对象%d未找到。

为避免为每个条件生成唯一的脚本,我要强制忽略任何缺少的对象。

如有任何帮助,我将不胜感激!

推荐答案

欢迎使用!正如评论中所提到的,将来尝试在您的问题中包含一个可操作的例子。问题的首选解决方案是从一开始就避免为单个变量赋值。尝试重组代码,以便将列总和分配给列表等。在下面的示例中,我创建了一些示例数据,将列和值赋给一个向量,并计算向量的和,而不是为每列创建一个新变量。

# Create sample data
rData <- as.data.frame(matrix(c(1:6), nrow=6, ncol=5, byrow = TRUE))
print(rData)

# Compute column sum
sumVec <- apply(rData, 2, sum)
print(sumVec)

# Compute sum of column sums
total <- sum(sumVec)
print(total)

如果必须使用单个变量,则在将其相加之前,可以检查该变量是否存在,如果不存在,则创建该变量并分配NA。然后,您可以在排除NA之后计算变量的总和。

# Sample variables
a <- 15
b <- 20
c <- 50

# Assign NA if it doesn't exist (one variable at a time)
if(!exists("d")) { d <- NA }

# Assign NA using sapply (preferred)
sapply(c("a","b","c","d","e"), function(x) 
  if(!exists(x)) { assign(x, NA, envir=.GlobalEnv) } 
)

# Compute sum after excluding NA
altTotal <- sum(na.omit(c(a,b,c,d,e)))
print(altTotal)

希望这将使您更接近解决方案!

这篇关于编写脚本以忽略在r中找不到的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆