Я работаю над вопросом о домашнем задании, который просит меня написать функцию, которая будет отображать различные типы графиков на основе входных данных.R: что означает это сообщение об ошибке в пользовательской функции?
Аргументы функции являются x
, y
и type
, где x
и y
векторы Я хочу построить и type
тип сюжета (разброс, коробки, или гистограммы).
Функция должна быть записана так, чтобы, если вы не указали данные для x
с типом рассеяния, вы получите сообщение об ошибке, в котором говорится, что вам нужны данные x для создания диаграммы рассеяния.
Аналогичным образом, если вы укажете данные для x
с гистограммой типа или коробкой, вы получите сообщение об ошибке, в котором вам понадобятся только данные y для этих типов графиков.
У меня есть функция, которая производит письменную правильные графики и сообщения об ошибках, но и дает мне предупреждающее сообщение:
In if (y == FALSE & type == 1) { :
the condition has length > 1 and only the first element will be used
Функция находится ниже. Может кто-нибудь сказать мне, почему я получаю это особое предупреждение?
plot.function2=function(x=FALSE,y=FALSE,type){
if(x==FALSE & type==1){
stop("Error Message 1")
}else if (y==FALSE & type==1){
stop("Error Message 1.5")
}else if(type==1){
plot=plot(y~x)
}else if (x==TRUE & type==2){
stop("Error Message 2")
}else if(type==2){
plot=boxplot(y)
}else if(type==3){
plot=barplot(y)
}
plot
}
Сообщение появляется для большинства входов; например, ввод plot.function2(v1, v2, 1)
дает мне диаграмму рассеяния двух векторов, , а также предупреждение. Благодаря!
Вложенное 'if' /' else' является болезненным для чтения. Посмотрите на функцию 'switch'. После этого переключателя вы можете переключаться в соответствии с типом и тестовым входом. – Roland