我正在更新一个R-包,但我承认我已经四年没有使用R语言了,所以我忘记了很多事情.我把我的包上传给了cran,他们给我提供了一些警告和笔记.我设法解决了这些警告,但我的一行代码仍然有问题.

这行代码如下所示:

if (class(file) == "data.frame" || class(file2) == "data.frame")

CRAN返回以下问题:

Found if() conditions comparing class() to string:
File 'DFA/R/DFA.R': if (class(file) == "data.frame" || class(file2) == "data.frame") ...
File 'DFA/R/DFA.R': if (class(file) == "data.frame" || class(file2) == "data.frame") ...
File 'DFA/R/DFA.R': if (class(file) == "data.frame" || class(file2) == "data.frame") ...
File 'DFA/R/DFA.R': if (class(file) == "data.frame" || class(file2) == "data.frame" || class(file3) == "data.frame" || class(file4) == "data.frame") ...
Use inherits() (or maybe is()) instead.

有谁知道如何修改我的代码以使用Inherits()或is()而不会失go 原来的含义?

推荐答案

将您的行更改为:

if (inherits(file, "data.frame") || inherits(file2, "data.frame"))

inherits()是判断类的更安全的方法,因为对象可以有多个类.

R相关问答推荐

将模拟变量乘以多个观测结果中的模拟变量

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

从有序数据中随机抽样

R:更新后无法运行控制台

Highcharter多次钻取不起作用,使用不同方法

如何在格子中添加双曲曲线

将嵌套列表子集化为嵌套列表

如何得到每四个元素向量R?

如何在R中描绘#符号?

`夹心::vcovCL`不等于`AER::tobit`标准错误

从数据创建数字的命名列表.R中的框

在具有多个响应变量的比例堆叠条形图上方添加总计

我是否可以使用多个变异项来构建顺序列(标记多个问题)

使用geom_sf跨越日期线时的闭合边界

为什么不能使用lApply在包装函数中调用子集

在同一单元格中创建包含整数和百分比的交叉表

使用LAG和dplyr执行计算,以便按行和按组迭代

R/shiny APP:如何充分利用窗口?

Package emMeans:如果emmip模型中包含的变量较少,emMeans模型中的其他变量设置为什么?

从多行中 Select 最小值