- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确实有一个庞大的数据集,想做一些回归分析。
这是数据集。
# Winst Item1 Item2 Item3 Item4 Item5 ... Item100
# Event1 992.19788 92 91 79 36 71 ... 93
# Event2 43.43687 62 16 58 51 30 ... 71
# Event3 219.52095 NaN NaN NaN NaN NaN ... NaN
# Event4 874.76596 89 69 82 65 56 ... 91
# Event5 602.40975 36 37 27 94 54 ... 52
我怎样才能把下面的代码写得更短一些?
lm(Winst ~ Item1 + Item2 + Item3 + Item4 + ... + Item50, data=data1)
在数学中我们使用 sigma 符号,但在 r 中这个词有另一个含义。 sum()
都不起作用。
有哪些选项?
data1 <- structure(list(Winst = c(992.197884479538, 43.4368695132434,
219.520953251049, 874.765956075862, 602.409749291837), Item1 = c(92,
62, NaN, 89, 36), Item2 = c(91, 16, NaN, 69, 37), Item3 = c(79,
58, NaN, 82, 27), Item4 = c(36, 51, NaN, 65, 94), Item5 = c(71,
30, NaN, 56, 54), Item6 = c(23, 35, NaN, 67, 59), Item7 = c(44,
64, NaN, 9, 98), Item8 = c(70, 79, NaN, 75, 57), Item9 = c(91,
26, NaN, 76, 29), Item10 = c(99, 74, NaN, 70, 78), Item11 = c(27,
72, NaN, 74, 16), Item12 = c(10, 48, NaN, 2, 60), Item13 = c(54,
95, NaN, 10, 17), Item14 = c(58, 82, NaN, 83, 61), Item15 = c(21,
88, NaN, 1, 62), Item16 = c(61, 4, NaN, 23, 8), Item17 = c(7,
46, NaN, 18, 20), Item18 = c(67, 24, NaN, 32, 92), Item19 = c(83,
73, NaN, 42, 41), Item20 = c(42, 65, NaN, 51, 30), Item21 = c(77,
49, NaN, 85, 85), Item22 = c(83, 19, NaN, 71, 50), Item23 = c(25,
42, NaN, 20, 81), Item24 = c(74, 93, NaN, 17, 58), Item25 = c(23,
84, NaN, 64, 7), Item26 = c(22, 43, NaN, 49, 65), Item27 = c(69,
32, NaN, 45, 42), Item28 = c(92, 20, NaN, 33, 3), Item29 = c(32,
55, NaN, 40, 22), Item30 = c(68, 76, NaN, 38, 46), Item31 = c(28,
91, NaN, 80, 97), Item32 = c(100, 61, NaN, 35, 91), Item33 = c(86,
36, NaN, 63, 69), Item34 = c(54, 60, NaN, 8, 34), Item35 = c(11,
63, NaN, 22, 53), Item36 = c(63, 80, NaN, 26, 96), Item37 = c(41,
66, NaN, 100, 2), Item38 = c(24, 98, NaN, 24, 47), Item39 = c(82,
31, NaN, 97, 87), Item40 = c(34, 8, NaN, 95, 32), Item41 = c(60,
27, NaN, 14, 68), Item42 = c(48, 44, NaN, 19, 56), Item43 = c(45,
57, NaN, 57, 40), Item44 = c(72, 75, NaN, 28, 72), Item45 = c(11,
12, NaN, 37, 88), Item46 = c(21, 70, NaN, 15, 5), Item47 = c(46,
22, NaN, 92, 43), Item48 = c(68, 52, NaN, 7, 48), Item49 = c(6,
5, NaN, 16, 49), Item50 = c(93, 71, NaN, 91, 52), Item51 = c(92,
62, NaN, 89, 36), Item52 = c(91, 16, NaN, 69, 37), Item53 = c(79,
58, NaN, 82, 27), Item54 = c(36, 51, NaN, 65, 94), Item55 = c(71,
30, NaN, 56, 54), Item56 = c(23, 35, NaN, 67, 59), Item57 = c(44,
64, NaN, 9, 98), Item58 = c(70, 79, NaN, 75, 57), Item59 = c(91,
26, NaN, 76, 29), Item60 = c(99, 74, NaN, 70, 78), Item61 = c(27,
72, NaN, 74, 16), Item62 = c(10, 48, NaN, 2, 60), Item63 = c(54,
95, NaN, 10, 17), Item64 = c(58, 82, NaN, 83, 61), Item65 = c(21,
88, NaN, 1, 62), Item66 = c(61, 4, NaN, 23, 8), Item67 = c(7,
46, NaN, 18, 20), Item68 = c(67, 24, NaN, 32, 92), Item69 = c(83,
73, NaN, 42, 41), Item70 = c(42, 65, NaN, 51, 30), Item71 = c(77,
49, NaN, 85, 85), Item72 = c(83, 19, NaN, 71, 50), Item73 = c(25,
42, NaN, 20, 81), Item74 = c(74, 93, NaN, 17, 58), Item75 = c(23,
84, NaN, 64, 7), Item76 = c(22, 43, NaN, 49, 65), Item77 = c(69,
32, NaN, 45, 42), Item78 = c(92, 20, NaN, 33, 3), Item79 = c(32,
55, NaN, 40, 22), Item80 = c(68, 76, NaN, 38, 46), Item81 = c(28,
91, NaN, 80, 97), Item82 = c(100, 61, NaN, 35, 91), Item83 = c(86,
36, NaN, 63, 69), Item84 = c(54, 60, NaN, 8, 34), Item85 = c(11,
63, NaN, 22, 53), Item86 = c(63, 80, NaN, 26, 96), Item87 = c(41,
66, NaN, 100, 2), Item88 = c(24, 98, NaN, 24, 47), Item89 = c(82,
31, NaN, 97, 87), Item90 = c(34, 8, NaN, 95, 32), Item91 = c(60,
27, NaN, 14, 68), Item92 = c(48, 44, NaN, 19, 56), Item93 = c(45,
57, NaN, 57, 40), Item94 = c(72, 75, NaN, 28, 72), Item95 = c(11,
12, NaN, 37, 88), Item96 = c(21, 70, NaN, 15, 5), Item97 = c(46,
22, NaN, 92, 43), Item98 = c(68, 52, NaN, 7, 48), Item99 = c(6,
5, NaN, 16, 49), Item100 = c(93, 71, NaN, 91, 52)), class = "data.frame", row.names = c("Event1",
"Event2", "Event3", "Event4", "Event5"))
最佳答案
您可以使用 reformulate
和 grep
列名称中的术语和正则表达式。
fo <- reformulate(grep('^Item([1-9]|[1-4][0-9]|50)$', names(data1), value=TRUE),
'Winst')
fo
# Winst ~ Item1 + Item2 + Item3 + Item4 + Item5 + Item6 + Item7 +
# Item8 + Item9 + Item10 + Item11 + Item12 + Item13 + Item14 +
# Item15 + Item16 + Item17 + Item18 + Item19 + Item20 + Item21 +
# Item22 + Item23 + Item24 + Item25 + Item26 + Item27 + Item28 +
# Item29 + Item30 + Item31 + Item32 + Item33 + Item34 + Item35 +
# Item36 + Item37 + Item38 + Item39 + Item40 + Item41 + Item42 +
# Item43 + Item44 + Item45 + Item46 + Item47 + Item48 + Item49 +
# Item50
查看演示 there .
然后就是
lm(fo, data1)
或
do.call('lm', list(fo, quote(data1)))
显示“调用:”权利。
关于r - 有没有更短的方法可以在 lm() 公式中编写许多类似的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71183717/
我对 lm 的一些令人不安的行为感兴趣函数和相关的predict.lm R 中的函数。splines基础包提供函数bs生成 b 样条展开,然后可用于使用 lm 拟合样条模型,一个通用的线性模型拟合函数
我使用 minpack.lm 包中的 nls.lm 来拟合许多非线性模型。 由于初始参数估计时的奇异梯度矩阵,它经常在 20 次迭代后失败。 问题是当我在失败之前查看迭代(trace = T)时,我可
我有一个稍微进入饱和状态的外部校准曲线。所以我拟合了一个二阶多项式和一个测量样本的数据框,我想知道其中的浓度。 df_calibration=structure(list(dilution = c(0
我试图弄清楚默认 r plot 的残差与拟合图中使用了哪种平滑线对于 lm对象,所以我通过输入 ?plot.lm 查看了帮助页面,因为据我了解 .是如何定义不同对象类型的这些默认行为的。 正如预期的那
我正在尝试使用 R 创建一个线性模型并使用它来预测一些值。主题是棒球数据。如果我这样做: obp <- lm(offense$R ~ offense$OBP) predict(obp, newdata
我有两个变量,我想找到它们之间的相关性。问题是,根据我使用的方法,我似乎得到了不同的结果。 我知道的一种方法是使用 scale() 函数中的自变量和因变量运行 lm() 函数。 所以下面的变量看起来像
我在使用 C Makefile 时遇到了一些问题。 Makefile 的内容如下: PROJECT = 3D-ELM MPICC = mpicc CLAGS = -g -O3 LIBS = -lm S
我使用 caret R 包作为一个非常方便的建模包装器。虽然这是一个奇怪的用法,但在使用模型类型 =“lm”和“无”的交叉验证时,我在从模型中提取结果时遇到了一些麻烦。参见下面的示例: library
我想使用 lm 在 R 中拟合线性模型获得总模型拟合的系数估计值和 p 值 + p 值(类似方差分析),因此基本上来自 summary.lm 的输出. 问题是我想使用我自己的模型矩阵,而不是在调用 l
我建了一个 lm不使用 data= 的模型范围: m1 <- lm( mdldvlp.trim$y ~ gc.pc$scores[,1] + gc.pc$scores[,2] + gc.pc$sco
我是 R 的新手,我只是在学习 apply功能及其工作方式。我只想从 lm 中提取系数适合几年内产品颜色和品牌的变量 x。 我知道我可以创建一个 for 循环并按型号年份对数据进行子集化并拟合它,但我
如何计算 df 中存储在列中的多个变量的行向 lm()/系数? 我有这种数据(只是例子): set.seed(1) foo trialNumber Nr1 Nr2
我对在 ggplot2 中自动绘制模型很感兴趣。基于 discussion在 ggplot2 问题跟踪器上,我相信像下面这样的包装器应该可以工作。 geom_predict Warning: Com
我正在对多个属性(包括两个分类属性B和F)进行线性回归,但是我没有获得每个系数水平的系数值。 B具有9个级别,而F具有6个级别。当我最初运行模型(带有截距)时,我得到了8个B系数和5个F系数,我将其理
我一直试图弄清楚 subset R 中的参数 lm()功能有效。特别是以下代码对我来说似乎很可疑: data(mtcars) summary(lm(mpg ~ wt, data=mtcars))
我有以下数据框 > df df2 Economy ConditionA ConditionB ConditionC ConditionD 1 FRANCE 9
我正在使用来自包鼠标的男孩数据集的数据。当我对其中一个因子变量 (phb) 运行回归时,输出会显示这些因子,但给它们的名称与数据中的名称不同。我想知道为什么会这样。有没有办法纠正它? library(
通常,我和你(假设你不是机器人)很容易识别预测器是分类的还是定量的。例如,性别显然是分类的。您的最后一票可以分类。 基本上,我们可以轻松识别分类预测变量。但是当我们在 R 中输入一些数据时会发生什么,
我们从中得到了一个 lm 对象并想提取标准错误 lm_aaa<- lm(aaa~x+y+z) 我知道函数摘要、名称和系数。 但是,摘要似乎是手动访问标准错误的唯一方法。 你知道我怎么能输出se吗? 谢
我正在拟合一个模型来分解数据并进行预测。如果newdata中的predict.lm()包含模型未知的单个因子级别,则所有predict.lm()都会失败并返回错误。 有没有一种好方法可以让predic
我是一名优秀的程序员,十分优秀!