функция записи в R

r

48 просмотра

1 ответ

У меня есть датафрейм (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)
} 

Однако вышеприведенная функция возвращает весь вектор вместо определенного значения.

Автор: sahul bharti Источник Размещён: 08.11.2019 10:58

Ответы (1)


0 плюса

Проблема в функции ОП возникает из-за создания объектов «возраст» и «пол», которые также являются аргументами функции. Итак, в сущности, мы сравниваем 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))
Автор: akrun Размещён: 20.08.2016 06:46
Вопросы из категории :
32x32