r - 重命名 data.frame 中的整数
问题描述
使用R
...
我有一个data.frame
有五个变量的。
其中一个变量colr
的值范围为 1 到 5。
定义为integer
具有值 1
、2
、3
、4
和5
的 。
问题:我想建立一个回归模型,其中colr
、整数1
、2
、3
、4
和中的值5
被报告为具有以下名称的自变量。
1
= 银色,
2
= 蓝色,
3
= 粉色,
4
= 银色、蓝色或粉色以外的
5
颜色,= 未报告颜色。
问题:有没有办法以与以下不同的方式提取或重命名这些值(因为此过程不会重命名,例如1
在Silver
摘要回归输出中):
lm(dependent variable ~ + I(colr.f == 1) +
I(colr.f == 2) +
I(colr.f == 3) +
I(colr.f == 4) +
I(colr.f == 5),
data = df)
我对任何允许我独立创建和命名这些不同值的方法持开放态度,但我更愿意看看是否有一种方法可以使用tidyverse
ordplyr
因为这是我在构建多元模型时经常要做的事情。
感谢您的任何帮助。
解决方案
我不确定我是否以正确的方式理解你的问题,但你不能只使用
library(dplyr)
df <- df %>%
mutate(color=factor(colr.f, levels=c(1:5), labels=c("silver", "blue", "pink", "not s, b, p", "not reported"))
然后只运行回归color
。
/编辑澄清。编造一些数据:
df <- data.frame(
x=rnorm(100),
color=factor(rep(c(1,2,3,4,5), each=20),
labels=c("Silver", "Blue", "Pink", "Not S, B, P", "Not reported")),
y=rnorm(100, 4))
m1 <- lm(y~x+color, data=df)
m2 <- lm(y~x+color-1, data=df)
summary(m1)
Call:
lm(formula = y ~ x + color, data = df)
Residuals:
Min 1Q Median 3Q Max
-1.96394 -0.59647 0.00237 0.56916 2.13392
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.93238 0.19312 20.362 <2e-16 ***
x 0.13588 0.09856 1.379 0.171
colorBlue -0.07862 0.27705 -0.284 0.777
colorPink -0.02167 0.27393 -0.079 0.937
colorNot S, B, P 0.15238 0.27221 0.560 0.577
colorNot reported 0.14139 0.27230 0.519 0.605
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8606 on 94 degrees of freedom
Multiple R-squared: 0.0268, Adjusted R-squared: -0.02496
F-statistic: 0.5177 on 5 and 94 DF, p-value: 0.7623
summary(m2)
Call:
lm(formula = y ~ x + color - 1, data = df)
Residuals:
Min 1Q Median 3Q Max
-1.96394 -0.59647 0.00237 0.56916 2.13392
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 0.13588 0.09856 1.379 0.171
colorSilver 3.93238 0.19312 20.362 <2e-16 ***
colorBlue 3.85376 0.19570 19.692 <2e-16 ***
colorPink 3.91071 0.19301 20.262 <2e-16 ***
colorNot S, B, P 4.08477 0.19375 21.083 <2e-16 ***
colorNot reported 4.07377 0.19256 21.156 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.8606 on 94 degrees of freedom
Multiple R-squared: 0.9578, Adjusted R-squared: 0.9551
F-statistic: 355.5 on 6 and 94 DF, p-value: < 2.2e-16
第一个模型是具有截距的模型,因此必须删除一个因子水平以避免完美的多重共线性。在这种情况下,银色的“效果”是截距的值,而其他颜色的“效果”是截距系数值+它们各自的系数值。
第二个模型是在没有截距(没有常数)的情况下估计的,因此您可以看到各个效果。但是,在估计没有截距的模型之前,您可能应该知道自己在做什么。
推荐阅读
- go - 我是golang的新手,我正在尝试创建一个zip,其中必须有一个文件夹:tosend.zip/archivos/file.png
- python - ValueError:ParentedTree.read():预期的“字符串结尾”但得到了“(:”
- python - 预测运行 keras multi_gpu_model 时出错
- linux - 在 WSL2 中挂载本机 ext4 分区
- filter - Tornadofx 表格视图,标题底部的第一行作为过滤器字段
- c# - 无法访问已关闭的 Stream。使用 PDFReader 时
- php - Laravel - 向工厂创建的模型添加关系
- javascript - Javascript 动画每页只加载一次
- shell - sed/awk unix csv文件修改
- r - R矩阵每行列的相关系数