测试列表是否具有 R 中的特定形式

Testing whether a list has a specific form in R

第一次提问,希望我能答对。无论如何,我正在用 R 编写一个函数,它将一个列表作为其参数之一。具体来说,列表需要采用

的形式
list(c(x1,y1),c(x2,y2),...)

换句话说,代表笛卡尔点的二元向量列表。我想做一些错误处理来检测提供的列表是否具有该形式。任何建议表示赞赏。例如:

test <- function(points, ...){
    if( test for format goes here){
        return("Error: Invalid points list format")
    }
    main content
}

这些点应该是一个任意长度的列表,每个列表元素都是一个 2 元素数字向量。

你可以试试:

all(lengths(points) == 2L & sapply(points, is.numeric))

两个测试是:

  • lengths(points) == 2L

    每个列表长度是否等于2

  • sapply(points, is.numeric)

    是classnumeric的每个列表元素。