is.na() 应用于非(列表或向量)类型“NULL”意味着什么?

2024-04-09

我想从没有 NA 的 data.frame 中选择具有前向过程的 Cox 模型。这是一些示例数据:

test <- data.frame(
  x_1   = runif(100,0,1),
  x_2   = runif(100,0,5),
  x_3   = runif(100,10,20),
  time  = runif(100,50,200),
  event = c(rep(0,70),rep(1,30))
)

该表没有任何意义,但如果我们尝试构建一个模型:

modeltest <- coxph(Surv(time, event) ~1, test)
modeltest.forward <- step(
  modeltest, 
  data      = test, 
  direction = "forward", 
  scope     = list(lower = ~ 1, upper = ~ x_1 + x_2 + x_3)
)

前锋在第一步结束时说道:

在 is.na(fit$coefficients) 中: is.na() 应用于“NULL”类型的非(列表或向量)

(三次)

我尝试过改变上面的模型,我什至尝试过upper = ~ 1但警告仍然存在。我不明白:我没有 NA,我的向量都是数字(我检查过)。 我搜索了人们是否有同样的问题,但我所能找到的只是由于向量的名称或类别而导致的问题。

我的代码有什么问题吗?


这个具体案例中的问题

公式的右侧是1,这使得它成为零模型. coxph calls coxph.fit,它(可能是懒惰的)不费心返回空模型的系数。

Later coxph calls extractAIC,它错误地假设模型对象包含名为的元素coefficients.

一般情况

is.na假设其输入参数是原子向量或矩阵或列表或数据框。其他数据类型会导致警告。它发生在NULL,正如您所见:

is.na(NULL)
## logical(0)
## Warning message:
## In is.na(NULL) : is.na() applied to non-(list or vector) of type 'NULL'

此问题的一个常见原因是尝试访问列表中不存在的元素或数据框中不存在的列。

d <- data.frame(x = c(1, NA, 3))
d$y # "y" doesn't exist is the data frame, but NULL is returned
## NULL
is.na(d$y)
## logical(0)
## Warning message:
## In is.na(d$y) : is.na() applied to non-(list or vector) of type 'NULL'

您可以通过在操作该列之前检查该列是否存在来防止这种情况。

if("y" in colnames(d))
{
  d2 <- d[is.na(d$y), ]
}

其他数据类型的警告

对于公式、函数、表达式等,您会收到类似的警告:

is.na(~ NA)
## [1] FALSE FALSE
## Warning message:
## In is.na(~NA) : is.na() applied to non-(list or vector) of type 'language'

is.na(mean)
## [1] FALSE
## Warning message:
## In is.na(mean) : is.na() applied to non-(list or vector) of type 'closure'

is.na(is.na)
## [1] FALSE
## Warning message:
## In is.na(is.na) : is.na() applied to non-(list or vector) of type 'builtin'

is.na(expression(NA))
## [1] FALSE
## Warning message:
## In is.na(expression(NA)) :
##   is.na() applied to non-(list or vector) of type 'expression'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

is.na() 应用于非(列表或向量)类型“NULL”意味着什么? 的相关文章

随机推荐

  • 单遍读取和验证 XML 与 C# 中引用的 XSD

    我正在尝试从 XML 文件中读取数据 并根据它建议的 XSD 对其进行验证 将其转换为单个数据结构 例如 XmlDocument 我有一个解决方案 但它需要两次通过文件 我想知道是否有单次解决方案 MyBooks xml
  • 如何在 PHP 中将数字格式化为美元金额

    如何将数字转换为显示美元和美分的字符串 eg 123 45 gt 123 45 123 456 gt 123 46 123 gt 123 00 13 gt 0 13 1 gt 0 10 0 gt 0 00 如果你只想要简单的东西 numbe
  • 如何在 Windows 命令行上以合适的格式获取当前日期/时间以在文件/文件夹名称中使用?

    更新 现在已经是 2016 年了 我会使用 PowerShell 来实现此目的 除非有真正令人信服的向后兼容的原因 特别是因为使用的区域设置问题date 请参阅 npocmaka 的https stackoverflow com a 197
  • Android 上的 pthread_create 警告

    打电话后pthread create函数我收到下一条消息 W libc 26409 pthread create sched setscheduler 调用失败 不允许操作 用于创建线程的代码是 pthread attr t threadA
  • 防止单个单词在 css/html 中环绕浮动

    有没有什么方法可以防止一个或两个单词环绕浮动 但如果有更多文本则允许它 这是一个示例 其中第一个文本有问题 但第二个文本很好 http jsfiddle net wdPCp http jsfiddle net wdPCp div class
  • AllowAnonymous 不适用于 Azure 广告身份验证

    我有一个 Asp net MVC 应用程序 在其中使用 Azure AD 身份验证来对用户进行身份验证 我想允许用户无需登录即可访问某些 api 控制器 我尝试将 AllowAnonymous 属性放在控制器顶部以跳过这些控制器进行身份验证
  • 无法杀死的控制台窗口

    我正在 Visual C 2008 下使用 GLUT 开发基于 OpenGL 的 2d 模拟 有时当我遇到断言 或未处理的异常并闯入调试器时 GLUT 显示窗口关闭 但控制台窗口保持打开状态 它们只是不能杀了 它们不会出现在任务管理器 进程
  • 计算的属性不会在 Powershell 中引发异常。有哪些解决办法?

    显然有一个通过设计怪癖 https connect microsoft com PowerShell feedback details 782806 calculated properties do not throw exceptions
  • 使用 Firefox 打开确认对话框时显示“$apply already in Progress”

    我 有时 变得很奇怪 申请已在进行中在以下看似无辜的情况下打开确认对话框时出错 var mod angular module app mod controller ctrl function scope interval http scop
  • 如何知道ngOnChanges中哪些@Input发生了变化?

    我正在使用 Angular 2 现在我有两个 inputaa and bb 我想要做 If aa改变 做某事 If bb改变 做其他事情 如何知道哪些 Input发生了变化ngOnChanges Thanks Input aa Input
  • 分析心率监测器返回的数据

    我正在尝试通过蓝牙读取心率监视器传输的数据 但我真的不知道如何读取心率监视器返回的字节 每个供应商可能都有自己的将数据包装成字节的方法 但是如何将这些字节转换为某种可读格式 以便我可以分析其中的变化 例如 ASCII 值或某些十六进制值 我
  • 如何调试特定的 JavaScript 点击事件?

    在雅虎天气页面上 有一个链接标记为C改变温度单位Fahrenheit to Celsius 我正在寻找调试此操作并了解 JavaScript 在幕后执行的内容 将 F 转换为 C 调试此类操作的方法是什么 Link http weather
  • phpMyAdmin 错误 504 网关超时重新加载

    我的 phpmyadmin 有一个非常烦人的问题 它出乎意料地出现 据我所知 我的专用服务器没有发生任何变化 当我尝试在浏览器中执行任何查询或显示执行时间超过 1 秒的视图时 Windows 7 上的 firefox 即行为相同 我收到以下
  • 在类中声明一个数组。 C++

    我想创建一个初始化数组和函数的类push向数组添加一个元素而不是打印它 作为初学者 我知道初始化有问题 除了函数之外一切正常push 它不打印数组 我的班级出了什么问题 include
  • 使用 exiftool 编辑 MP4 元数据

    我有一个 MP4 文件Title元数据 exiftool movie mp4 这使 Audio Bits Per Sample 16 Audio Sample Rate 48000 Handler Type Metadata Handler
  • 获取USB设备的父信息C++

    我正在开发一个 MFC 工具 用于检查连接的 USB 设备的一些驱动程序信息 例如位置信息 父级 硬件 ID 等 我已经获得了我想要的所有其他信息 但我一直在获取设备父级信息 我用过安装程序API dll在我的代码中获取设备信息 使用获取U
  • MSBuild with Azure - PublishProfileSet 计算结果为“”

    我正在尝试将我的项目部署到 Azure 我首先在 Azure 上研究 EF 代码几个小时 但我只用了一次就创建了一个用户 我去发布更新 现在收到以下错误 Invoke build failed due to exception Expect
  • QGraphicsView 和 QGraphicsItem:缩放视图矩形时不缩放项目

    我正在使用 QtQGraphicsView and QGraphicsItem 子类 当视图矩形更改时 有没有办法不缩放视图中项目的图形表示 例如放大时 默认行为是我的项目相对于我的视图矩形进行缩放 我想可视化二维点 这些点应该由一个细矩形
  • 我怎样才能卷曲深度爬行?

    我的 Deepcrawl 爬行仅给出 null 值 ch curl init curl setopt ch CURLOPT URL https api deepcrawl com accounts 00000 projects 195334
  • is.na() 应用于非(列表或向量)类型“NULL”意味着什么?

    我想从没有 NA 的 data frame 中选择具有前向过程的 Cox 模型 这是一些示例数据 test lt data frame x 1 runif 100 0 1 x 2 runif 100 0 5 x 3 runif 100 10