【问题标题】:Atomic vectors in R and applying function to themR中的原子向量并将函数应用于它们
【发布时间】:2015-12-09 11:41:24
【问题描述】:

所以我有一个来自 UC Irvine 网站的数据集(“葡萄酒质量”数据集),我想看看数据集的残差图。我这样做的原因是查看方差是否增加,以便我可以运行基于对数的回归。要查看残差,我应用以下代码:

residuals(white.wine)

white.wine 是我命名数据框的方式。但是我收到了这个错误,"NULL"。如果我想查看特定预测变量的残差,例如 Fixed Acidity,我会收到此错误:

错误:$ 运算符对原子向量无效。

有什么办法吗?感谢您的帮助!

【问题讨论】:

  • 残差适用于模型,而不是数据。您想创建数据模型,然后获取模型的残差
  • @休是的!哦,是的,我知道我需要先创建一个模型。我只是想知道创建该模型后会做什么。抱歉不够具体。

标签: r


【解决方案1】:

@Hugh 说必须对模型使用“残差”是正确的,但我认为您的问题还在于如何在数据框上应用某些东西。如果您只想要每个预测变量的方差,您可能需要以下内容:

apply(white.wine, 2, var)

正如?apply 文档所说,您需要提供数据、边距 和函数。边距是指应用于行或列,1 表示对行应用函数,2 表示函数应该应用于列。我假设您在列中有预测变量,所以我在上面的代码中使用了 2。

【讨论】:

  • 1) 你有 var 和 white.wine 绕错了方向。 2) lapply sapply 甚至 vapply 在处理 data.frame 中的列时更可取
  • 不错,已编辑。对于那个很抱歉!我刚刚在没有问题的测试数据帧上使用了apply。您发现[s/l/v]apply 的优势是什么?
  • 完美!我实际上要运行两个回归模型,然后运行一个聚类模型。只是想看看一旦看到回归模型的情节需要发生什么。非常感谢。
  • @Nancy apply() 会将 data.frame 转换为矩阵,这可能会在类型转换方面产生不良副作用,因为矩阵一次只能保存一种数据类型。
  • @MrFlick9 我明白了。这很好记。幸运的是,这种情况已经全部是数字(表面上),所以 OP 有一个可行的解决方案。感谢您的澄清!
猜你喜欢
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多