R中的应用函数生成缺少值错误

R中的应用函数生成缺少值错误,r,apply,R,Apply,我承认我是一个初学者,所以对于一个基本的问题,我提前表示歉意。我遵循本指南,试图使用我自己的数据集对具有三个或三个以上因素的数据进行对数线性分析: 我被困在使用“应用”函数从数据集创建矩阵的部分。我有三个因素: ONS_ONL(此人的位置是ONS还是ONL) OffVar(无论该人员是在同一地点还是在其他地点参加课程) (非现场位置) FailVar(该人员是否失败或通过了课程) 对我的数据运行str()会生成以下结果: > str(data) 'data.frame': 775

我承认我是一个初学者,所以对于一个基本的问题,我提前表示歉意。我遵循本指南,试图使用我自己的数据集对具有三个或三个以上因素的数据进行对数线性分析:

我被困在使用“应用”函数从数据集创建矩阵的部分。我有三个因素:

  • ONS_ONL(此人的位置是ONS还是ONL)
  • OffVar(无论该人员是在同一地点还是在其他地点参加课程) (非现场位置)
  • FailVar(该人员是否失败或通过了课程)
对我的数据运行str()会生成以下结果:

> str(data)
'data.frame':   775 obs. of  3 variables:
$ ONS_ONL: Factor w/ 2 levels "ONL","ONS": 1 2 1 2 2 2 1 2 1 1 ...
$ OffVar : Factor w/ 2 levels "N","Y": 1 2 1 2 2 2 1 1 1 1 ...
$ FailVar: Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
打开要查看的表将产生以下结果:

该指南建议使用“应用”将数据转换为数据矩阵,该矩阵应按每个因子聚合计数。但我在尝试运行它时得到以下结果:

matrix <- apply(data,c(1:3),sum)
Error in if (d2 == 0L) { : missing value where TRUE/FALSE needed

矩阵您有一个数据帧;泰坦尼克号的例子是不同的,因为它是一个多维数组。如果您继续仔细阅读本指南,其中有一些关于如何在两者之间来回转换的注释,您可能使用了
xtabs()
。非常感谢您指出这一点-在阅读本示例时,我完全忽略了它。xtabs()解决了我的问题!你有一个数据框;泰坦尼克号的例子是不同的,因为它是一个多维数组。如果您继续仔细阅读本指南,其中有一些关于如何在两者之间来回转换的注释,您可能使用了
xtabs()
。非常感谢您指出这一点-在阅读本示例时,我完全忽略了它。xtabs()解决了我的问题!