r - 这个速度、年龄、里程和年份的公式是什么意思?
问题描述
我是 R 新手。我在一些 R 代码中遇到了这个公式:m.formula <- formula(I(speed^2) ~ (age + I(age^2) + I(log(age)) + miles + I(miles^2) + year))
. 我可以看到它正在定义一个公式,根据变量速度、年龄、英里和年份给出结果,但我不明白I
公式定义的左侧有speed^2
括号是什么意思以及为什么。如果有人能用简单的英语解释这个公式,我将不胜感激!提前致谢。
解决方案
I()
data
评估公式内部的转换是必要的。在您的情况下,这意味着speed^2
作为age
,age^2
等的函数log(age)
。
如果不包含I()
,您x^2
将被解释为x
(正如@ruibarradas 提到的,x*y
在's 公式中,因此x + y + x:y
只是 ):R
x^2
x+x+x:x = x
例如,
head(lm(mpg ~ disp, data = mtcars)$model)
mpg disp
Mazda RX4 21.0 160
Mazda RX4 Wag 21.0 160
Datsun 710 22.8 108
Hornet 4 Drive 21.4 258
Hornet Sportabout 18.7 360
Valiant 18.1 225
产生相同的模型比
head(lm(mpg ~ disp^2, data = mtcars)$model)
mpg disp
Mazda RX4 21.0 160
Mazda RX4 Wag 21.0 160
Datsun 710 22.8 108
Hornet 4 Drive 21.4 258
Hornet Sportabout 18.7 360
Valiant 18.1 225
推荐阅读
- javascript - 将 base64 图像转换为 blob 时,Expo React Native Fetch API 抛出“网络请求失败”错误
- react-native - 有人知道这个错误吗?反应原生
- android - 这是为我的 RadioGroup 设置侦听器的最有效方法吗?
- python - 在 Windows 10 上导入 Ghostscript
- ios - CATextLayer 的文字被截断
- django - 在 Django Rest 的分页响应中为每个对象动态添加有序数字
- c - CS50 Caesar - 从 ASCII 数字转换为字符
- visual-studio-2008 - Win CE 使用应用程序启用/禁用触摸
- javascript - 无法理解 return 如何在异步函数中工作
- listview - Xamarin.Forms TabbedPage 错误