У меня есть data.frame со столбцом (с именем «color»), в котором каждое значение «черный».Я также создал функцию, которая может заменить «черный» другими цветами в зависимости от значения другого столбца (значение столбца «рост»).Мне нужно создать цикл, который использует эту функцию для замены значений в столбце «цвет» в соответствии со значением «рост»
# Create a function
check_it <- function(x)
if(x>500){
return("green")
} else if(x<0) {
return("red")
} else {
return("blue")
}
# Create a loop using check_it
for(x in 1:nrow(all_data)) {
...
# Given this hint:
# You can use 1:nrow(all_data) as a set of indices
# to do something like the following inside the loop:
# all_data[i, "color"] <-
# check_it( all_data[i, "growth"] )
Есть предложения?
SAMPLE DATA
| station_id | timestamp | growth.x | growth.y | color |
--------------------------------------------------------
| DB1 | 1/14/01 | 59.916 | 59.9164 | black |
--------------------------------------------------------
| DB1 | 1/14/02 | 316.128 | 316.128 | black |
--------------------------------------------------------
| DB1 | 1/14/03 | -12.456 | -12.456 | black |
--------------------------------------------------------
| DB1 | 1/14/04 | 537.443 | 537.443 | black |
--------------------------------------------------------
Спасибо за помощь!Благодаря комментариям я смог понять, что моя функция не будет работать без вставленных правильных аргументов (у меня просто было «x»), и я не сказал своей функции, где искать значение «growth».
Вот код, который я использовал в итоге:
check_it <- function(x, )
if(all_data[x, "growth.x"] >500){
return("green")
} else if(all_data[x, "growth.x"] <0) {
return("red")
} else {
return("blue")
}
# Create a loop using check_it
for(x in 1:nrow(all_data)) {
all_data[x, "color"] <- check_it(x, all_data)
}