Я пытаюсь написать функцию R, которая состоит из оператора if, где, когда условие в столбце A истинно, оно вычисляет значение в столбце B, в противном случае оно просто возвращает значение из столбца B. I Я уверен, что это легко сделать, и я просто скучаю по чему-то основному c, но я изо всех сил. Есть ли хороший способ сделать это?
Вот пример того, что я пытался
example_df <- data.frame(
type = c("oranges", "apples", "oranges", "oranges", "apples"),
sold = c(6, 7, 1, 4, 1)
)
multiply_oranges <- function(x) { if (x$type == "oranges") {
x$sold * 10
} else {
x$sold
}
}
lapply(example_df, multiply_oranges)
Но это дает мне
Error: $ operator is invalid for atomic vectors
, и у меня возникают проблемы понимание того, что это значит / как это исправить.
Любая помощь в исправлении этой функции или демонстрации лучшего способа сделать это была бы очень признательна. Спасибо!