楼主: dxystata
1529 7

[问答] 如何得到数据框 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2013-8-4 16:18:17 |AI写论文
200论坛币
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))
smk1 <- 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))
alc1 <- c(rep(1, times = 409), rep(0, times = 49))


dat <- as.data.frame(cbind(alc, alc1,smk,smk1, can))




通过自己写的函数得到新的数据框
aaa<-function(yvar,xvars,data) {


}
如果调用aaa(yvar=can,xvar="smk alc",data=dat)
则得到新的数据框,其变量依次为为can smk alc


如果调用aaa(yvar=can,xvar="alc1 alc",data=dat)
则得到新的数据框,其变量依次为为can alc1 alc

谢谢!








最佳答案

关键词:数据框 如何

本帖被以下文库推荐

  • · R学习|主题: 262, 订阅: 161

沙发
ntsean 发表于 2013-8-4 16:18:18
aaa <- function(yvar, xvar, data) {
        yname <- deparse(match.call()$yvar)
        xvars <- unlist(strsplit(xvar, " "))
        data[, c(yname, xvars)]
}

藤椅
dxystata 发表于 2013-8-4 16:48:54

xvars<-"smk alc"
如何把xvars变为"smk","alc"

板凳
kaifengedu 发表于 2013-8-4 21:13:25
  1. aaa<-function(yvar = can, xvars = "smk alc", data = dat) {
  2.   if (xvars == "smk alc") {
  3.     data1 <- data.frame(data1.can = data$can,
  4.                         data1.smk = data$smk,
  5.                         data1.alc = data$alc)
  6.     return(data1)
  7.   } else {
  8.     data2 <- data.frame(data2.can = data$can,
  9.                         data2.alc1 = data$alc1,
  10.                         data2.alc = data$alc)
  11.     return(data2)
  12.   }
  13. }
  14. aaa(yvar = can, xvars = "smk alc", data = dat)
复制代码

报纸
kaifengedu 发表于 2013-8-4 21:17:14
  1. xvars = "smk alc"
  2. xvar1 <- substr(xvars, 1, 3)
  3. xvar2 <- substr(xvars, 5, 7)
复制代码

地板
dxystata 发表于 2013-8-4 21:45:16
谢谢!不通用.

7
kaifengedu 发表于 2013-8-5 08:16:03
通用的就是楼上的了,牛

8
jnuctr 发表于 2013-12-21 09:45:50

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 07:55