【发布时间】:2020-04-11 09:35:32
【问题描述】:
我使用在不同通道上测量电压间隙的设备收集了 4 列测量(距离)数据。
CH_1 CH_2 CH_3 CH_4
-40160 -38180 -63972 -54560
-40160 -38140 -63972 -54552
-40168 -38168 -63972 -54568
-40172 -38116 -63984 -54544
-40160 -38184 -63988 -54568
-40168 -38172 -63980 -54564
-40168 -38156 -63972 -54552
-40172 -38152 -63984 -54532
-40156 -38176 -63968 -54552
-40168 -38132 -63976 -54544
-40172 -38136 -63992 -54556
-40168 -38140 -63984 -54528
为了将这些电压转换为更易于解释的物理距离,传感器使用已知距离(以毫米为单位)的标准进行校准。这些作为数据帧被读入 R,称为 calibrations
x CH_1 CH_2 CH_3 CH_4
1mm -49000 -42000 -54000 -49000
2mm -46000 -36000 -46000 -44000
3mm -35000 -32000 -42000 -33000
4mm -30000 -28000 -38000 -27000
5mm -26000 -22000 -29000 -20000
使用这些值,使用broom 包,我运行了几个简单的线性回归并存储了它们。
calibrations<-melt(calibrations, id.vars = "x")
lms<-calibrations %>% group_by(variable) %>% do(tidy(lm(value~x, data=.)))
这给出了以下输出:
>lms
>variable term estimate std.error statistic p.value
1 CH_1 (Intercept) -55800. 2298. -24.3 0.000153
2 CH_1 x 6200. 693. 8.95 0.00294
3 CH_2 (Intercept) -46400. 766. -60.6 0.00000991
4 CH_2 x 4800. 231. 20.8 0.000244
5 CH_3 (Intercept) -59200 1755. -33.7 0.0000573
6 CH_3 x 5800 529. 11.0 0.00163
7 CH_4 (Intercept) -57100. 1567. -36.4 0.0000455
8 CH_4 x 7500. 473. 15.9 0.000544
我的问题是:如何使用lapply 或类似方法传递线性模型系数值来求解原始数据集中所有电压值(“y”)的“x”?
- 即对于 CH_1 x=(y+55800)/6200。这将为 CH_1 的第一次电压记录提供 2.52 mm 的值 - (x=(-40160+55800)/6200)。
其次,有没有办法同时为所有电压变量自动执行此操作?
【问题讨论】: