R中的函数编写

R中的函数编写,r,R,我有一个数据框(df),只有三列显示了在校学生的理想体重(x)(千克)(第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) } ide

我有一个数据框(df),只有三列显示了在校学生的理想体重(x)(千克)(第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)
} 

idealwtOP函数中的问题源于创建对象“年龄”和“性别”,这也是函数的参数。因此,本质上,我们比较的是
df$y==df$y
df$z==df$z
,结果是所有元素都为真,输出是整个向量。相反,我们可以在不使用
age=df$y
gender=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))