在R中创建数据集以测试stopifnot()

时间:2018-02-01 04:18:04

标签: r testing

我希望测试几个stopifnot()我放入我构建的函数中。它正在检查length(),is.numeric(),is.finite()等。我需要在R中创建一个数据集,我可以测试所有这些数据集。我正在努力创建一个有效的表(或类似的东西),以便能够测试。

x <- dataset #this is what I need to make

myfun <- function(x)
{
  stopifnot(length(x) > 0)
  stopifnot(is.numeric(x))
  stopifnot(is.finite(x))

  return(123)
}

1 个答案:

答案 0 :(得分:1)

我并不完全清楚你要做什么。

在这里,我生成了一个示例listdata.framevector,并根据这些不同的输入对象显示myfun的输出。

# Sample list
lst <- list(
    a = NA,
    b = "text",
    c = 1:10);

# Sample dataframe
df <- data.frame(
    a = 1:10,
    b = letters[1:10]);

# Sample vector  
vec <- c(1:5, Inf, 7:10);

myfun(lst);
#Error: is.numeric(x) is not TRUE

myfun(df);
#Error: is.numeric(x) is not TRUE

myfun(vec);
#Error: is.finite(x) are not all TRUE

显然,您可以更改输入对象以测试不同的条件。