Я пытаюсь установить значение по умолчанию для функции, которую я написал, чтобы вычислить либо расстояние между растениями, которое нужно установить, либо количество саженцев на гектар на заданном расстоянии - однако аргумент для типа системы посадки может возьмите один из нескольких входов и изменит то, что функция делает соответственно. Я хотел бы, чтобы система была установлена на «квадрат», если система отсутствует. Это то, что я пробовал до сих пор.
plant_spacing <- function(distance, distance_a, distance_b, system=c("square","rectangular"), stems_per_ha, area_m2=10000, output=c("stems per ha","spacing")){
if(missing(system)){
system=="square"
}
if(output=="stems per ha" & system=="rectangular"){
area_m2/(dist_a*dist_b)
}
if(output=="stems per ha" & system=="square"){
area_m2/(distance^2)
}
if(output=="spacing" & system=="square"){
sqrt(area_m2/stems_per_ha)
}
}
Это правильно, но выдает множество предупреждений:
Warning messages:
1: In if (output == "stems per ha" & system == "rectangular") { :
the condition has length > 1 and only the first element will be used
2: In if (output == "stems per ha" & system == "square") { :
the condition has length > 1 and only the first element will be used
3: In if (output == "spacing" & system == "square") { :
the condition has length > 1 and only the first element will be used
Есть ли лучший способ сделать это? Заранее спасибо.