函数写在R中

时间:2016-08-20 06:34:09

标签: r

我有一个数据帧(df),只有三列显示理想体重(x),单位为kgs(第1列),年龄(y)为年(第2列)和性别(z)(第3列,男孩编码1&女孩编码2)为学生。我想写一个功能,以获得特定年龄和性别的学生理想体重。我的新手尝试如下所示:

idealwt<-function(age,gender){

  age=df$y

  gender=df$z

  idealwt = df$x[age==df$y & gender==df$z]

  return(idealwt)
} 

但是,上面的函数返回整个向量而不是特定值。

1 个答案:

答案 0 :(得分:0)

OP功能中的问题源于创建对象'age'和'gender',它也是函数的参数。所以,实质上,我们正在比较df$y == df$ydf$z == df$z,这导致所有元素都获得TRUE,输出是整个向量。相反,我们可以在没有age = df$ygender = df$z

的情况下定义函数
idealwt<-function(age,gender){
  df$x[age==df$y & gender==df$z]

} 

idealwt(12, 2)
#[1] 38 42

数据

df <- data.frame(x = c(45, 38, 55, 33, 42), y = c(15, 12, 18, 14, 12), 
                z = c(1, 2, 1, 1, 2))