我有一个数据帧(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)
}
但是,上面的函数返回整个向量而不是特定值。
答案 0 :(得分:0)
OP功能中的问题源于创建对象'age'和'gender',它也是函数的参数。所以,实质上,我们正在比较df$y == df$y
和df$z == df$z
,这导致所有元素都获得TRUE,输出是整个向量。相反,我们可以在没有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))