Итак, у меня есть функция flip.allele(a, b, c, d)
, которая принимает 4 аргумента, а затем возвращает числовое значение, основанное на сравнении этих разных аргументов. Сейчас я пытаюсь написать дополнительную функцию, которая возьмет эту функцию, а затем применяет ее ко всему фрейму данных, поэтому повторяйте исходную функцию для каждой строки в фрейме данных.
Итак, четыре значения, которые я хочу сравнить, находятся в столбцах 2, 3, 4, 5. И я хочу, чтобы он вывел значение сравнения этих четырех столбцов в новый столбец 6.
Это моя текущая попытка сделать это:
flip.data.frame = function(df) {
for (i in nrow(df)) {
df$flip = flip.allele(df[2], df[3], df[4], df[5])
}
}
Проблема в том, что все мои попытки (включая эту) до сих пор означали, что при попытке использовать их в моих данных, он принимает первые 4 значения, правильно применяет функцию flip.allele
и затем возвращает значение для эта строка в каждую строку во фрейме данных.
Я знаю, что это из-за способа, которым я использую бит df$flip =
, но я также не уверен, каким будет решение. Я видел другой поток , который, казалось, предлагал использовать apply()
, но я не совсем уверен, как его использовать.
Любая помощь приветствуется.