楼主: 成年蝌蚪
2718 13

[问答] 如何编程实现将选出的变量名放到回归方程中 [推广有奖]

  • 3关注
  • 2粉丝

本科生

20%

还不是VIP/贵宾

-

威望
0
论坛币
100 个
通用积分
32.7514
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10762 点
帖子
34
精华
0
在线时间
104 小时
注册时间
2013-4-26
最后登录
2016-5-2

楼主
成年蝌蚪 发表于 2015-7-21 10:54:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有以下图中这个叫coefmatrix的矩阵。我想把非零对应的变量名找出来。
用了vname=rownames(coefmatrix)[which(coefmatrix!= 0)][-1]
vname得到想要的结果:
[1] "W."   "MIN"  "X3P." "FT."  "DREB" "REB"  "BLK"  "BLKA"
现在我想把选出的这些变量用到回归方程中
m=lm(y~之前选的变量名,data=dataset)
如何编程实现把结果[1] "W."   "MIN"  "X3P." "FT."  "DREB" "REB"  "BLK"  "BLKA" 变成W. +   MIN +  X3P. + FT. +  DREB + REB +  BLK +  BLKA并放到回归方程中“之前选的变量名”这个地方。这样就自动变成m=lm(y~W. +   MIN +  X3P. + FT. +  DREB + REB +  BLK +  BLKA, data=dataset)
多谢解答!

1.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:回归方程 dataset matrix DataS Names 如何

沙发
万人往LVR 在职认证  发表于 2015-7-21 12:00:20
把y和vname下的数据cbind一下,命名新数据阵为datanew,列名为value(y的列名),W,MIN等等
m=lm(value~.,data=datanew)
.代表其他所有变量
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
成年蝌蚪 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
成年蝌蚪 发表于 2015-7-21 12:55:32
万人往LVR 发表于 2015-7-21 12:00
把y和vname下的数据cbind一下,命名新数据阵为datanew,列名为value(y的列名),W,MIN等等
m=lm(value~.,da ...
这个思路完美解决问题。多谢啦

板凳
十里春风 学生认证  发表于 2015-7-21 21:24:35
formu<-paste(vname,clapse='+')
formu<-paste('y',formu,sep='~')
lm(formu,data=dataset)
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
成年蝌蚪 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

报纸
成年蝌蚪 发表于 2015-7-22 02:23:18
十里春风 发表于 2015-7-21 21:24
formu
这个也可以实现。

地板
成年蝌蚪 发表于 2015-7-22 02:32:11
十里春风 发表于 2015-7-21 21:24
formu
追加一个问题。如何(用循环?)实现下面这种情况呢2015一直变到2000.然后把pred的所有结果放到一个数据框。谢谢
pred2015=predict(model,newdata=play2015)
pred2014=predict(model,newdata=play2014)
......
pred2000=predict(model,newdata=play2000)

7
十里春风 学生认证  发表于 2015-7-22 09:45:55
成年蝌蚪 发表于 2015-7-22 02:32
追加一个问题。如何(用循环?)实现下面这种情况呢2015一直变到2000.然后把pred的所有结果放到一个数据框 ...
N<-2000:2015
pred<-paste('pred',N,sep='')
play<-paste('play',N,sep='')
dat<-lapply(seq_along(N),function(i)
  predict(model,newdata=play))
dat<-as.data.frame(dat)
names(dat)<-pred
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
成年蝌蚪 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

8
万人往LVR 在职认证  发表于 2015-7-22 10:31:11
十里春风 发表于 2015-7-22 09:45
N
问个别的问题
x <- 2015
play2015 <- 11
data <- paste("play",x,sep="")
会使data的值为"play2015",如果想让data的值为play2015的值11,应该怎么办。(不用play2015直接赋值)

9
十里春风 学生认证  发表于 2015-7-22 11:07:29
万人往LVR 发表于 2015-7-22 10:31
问个别的问题
x
assign(paste("play",x,sep="") ,11)

10
万人往LVR 在职认证  发表于 2015-7-22 11:19:41
十里春风 发表于 2015-7-22 11:07
assign(paste("play",x,sep="") ,11)
多谢!其实get(paste("play",x,sep=""))就好了
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
成年蝌蚪 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 16:31