楼主: dxystata
3140 22

[问答] R中写函数遇到的问题 [推广有奖]

11
dxystata 发表于 2013-4-26 23:18:17
水天一色DIY 发表于 2013-4-12 16:03
不是很明白楼主遇到具体问题何在
(如果是针对"xvars=age sex x1 x2",好像没见过如此定义,为了统一定义xv ...
按照你的思路
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
attach(mydata)
yvar=data.frame(admit)
xvars=data.frame(gre,gpa,rank)
myfun<-function(yvar,xvars){
  regress.out<- glm(yvar~xvars, data = mydata, family = "binomial")
}
myfun(yvar="yvar",xvars="xvars")
运行有误啊,谢谢!

12
famousid 发表于 2013-4-27 09:07:25
学习了,感谢

13
dxystata 发表于 2013-4-29 19:30:40
ntsean 发表于 2013-4-15 11:07
试试
yvar
yvar<-"y"
xvars<-"x0 x1"
covars<-"z"
如何通过as.formula得到y~x0+z,谢谢!

14
水天一色DIY 在职认证  发表于 2013-4-29 22:02:16
dxystata 发表于 2013-4-26 23:18
按照你的思路
mydata
  1. myfun(yvar=yvar,xvars=xvars
复制代码

15
dxystata 发表于 2013-4-29 23:34:27
水天一色DIY 发表于 2013-4-29 22:02
  • myfun(yvar=yvar,xvars=xvars

复制代码
没写全啊!

16
ntsean 发表于 2013-4-30 08:05:39
dxystata 发表于 2013-4-29 19:30
yvar
formula <- paste(yvar, "~", "x0", "+",  covars, sep="")
formula <- as.formula(formula)

大概就这样子通过字符串合并, 如果fomula复杂些的话,就稍微多些字符串操作

17
dxystata 发表于 2013-4-30 08:09:25
ntsean 发表于 2013-4-30 08:05
formula
没达到要求啊,没把xvars用上啊

18
ntsean 发表于 2013-4-30 08:46:27
dxystata 发表于 2013-4-30 08:09
没达到要求啊,没把xvars用上啊
这样可以不

xv <- paste(strsplit(xvars, " ")[[1]], collapse="+")

cv <- paste(strsplit(covars, " ")[[1]], collapse="+")

formular <- as.formula(paste(yvar, "~", xv, "+", cv, sep=""))

19
dxystata 发表于 2013-4-30 08:55:18
ntsean 发表于 2013-4-30 08:46
这样可以不

xv
希望得到的结果是 y ~ x0 + z

20
水天一色DIY 在职认证  发表于 2013-4-30 10:48:39
dxystata 发表于 2013-4-29 23:34
没写全啊!
  1. mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
  2. attach(mydata)
  3. yvar=data.frame(admit)
  4. xvars=data.frame(gre,gpa,rank)
  5. myfun<-function(yvar,xvars){
  6.         glm(yvar~xvars, data = mydata, family = "binomial")
  7. }
  8. myfun(yvar=yvar,xvars=xvars)
复制代码
delete double quote

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

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