首页 > 解决方案 > 确定输入是否是 R 中的结构体数组字段

问题描述

我正在尝试将一些代码从MATLAB转换为R。在MATLAB isfield(S,field)中是确定输入是否为结构体数组字段的方法。例如,在MATLAB中,当 if 语句为 TRUE 时,以下语句返回 0.1。

if isfield(opt,'Nick'), opt.Nick = 0.1 end

R中是否有相应的命令可以执行相同的过程?

标签: r

解决方案


R 中的一种可能替代方法(List用于在 MATLAB 中表示结构):

if ("Nick" %in% names(opt)) {
  opt$Nick <- 0.1
}

这样

> str(opt)
List of 2
 $ Ida : num [1:5] 1 2 3 4 5
 $ Nick: num 0.1

虚拟数据

> str(opt)
List of 2
 $ Ida : num [1:5] 1 2 3 4 5
 $ Nick: logi NA

推荐阅读