全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1285 3
2013-07-07
悬赏 100 个论坛币 已解决
复制代码
如何通过yvar传递can,想得到的结果为
  smk alc Freq
   0   0    3
   1   0    8
   0   1    6
   1   1  225
谢谢!

最佳答案

二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-7 17:59:43
can <- c(rep(1, times = 231), rep(0, times = 178), rep(1, times = 11),rep(0, times = 38))
smk <- c(rep(1, times = 225), rep(0, times = 6), rep(1, times = 166),
         rep(0, times = 12), rep(1, times = 8), rep(0, times = 3), rep(1, times = 18),
         rep(0, times = 20))
alc <- c(rep(1, times = 409), rep(0, times = 49))
dat <- as.data.frame(cbind(alc, smk, can))

aaa<-function(yvar,data) {
   bbb1 <- data.frame(ftable(xtabs(~ smk + alc + can,data=data)))
   print(bbb1)
   yvarc <- as.character(match.call()$yvar)
   subs<- bbb1[, yvarc]==1

   bbb2<-subset(bbb1,subs,select=c(1,2,4))
   print(bbb2)

}
aaa(yvar=smk,data=dat)
二维码

扫码加我 拉你入群

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

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

2013-7-8 09:24:05
can <- c(rep(1, times = 231), rep(0, times = 178), rep(1, times = 11),rep(0, times = 38))
smk <- c(rep(1, times = 225), rep(0, times = 6), rep(1, times = 166),
         rep(0, times = 12), rep(1, times = 8), rep(0, times = 3), rep(1, times = 18),
         rep(0, times = 20))
alc <- c(rep(1, times = 409), rep(0, times = 49))
dat <- as.data.frame(cbind(alc, smk, can))

aaa<-function(yvar,data) {
   bbb1 <- data.frame(ftable(xtabs(~ smk + alc + can,data=data)))
   print(bbb1)
   subs <- eval(yval, bbb1)==1
   bbb2<-subset(bbb1,subs,select=c(1,2,4))
   print(bbb2)
}
aaa(yvar=can,data=dat)
二维码

扫码加我 拉你入群

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

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

2013-7-8 09:51:13
ntsean 发表于 2013-7-8 09:24
can
输出的结果不对!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群