What should i do for this error? My code is :
library(e1071) library(hydroGOF) donnees <- read.csv("F:/new work with shahab/Code-SVR/SVR/MainData.csv") summary(donnees) #partitioning into training and testing set donnees.train <- donnees[donnees$subset=="train",2:ncol(donnees)] donnees.test <- donnees[donnees$subset=="test",2:ncol(donnees)] #use the mean of the dependent variable as a predictor def.pred <- mean(donnees.train$y) #error sum of squares of the default model on the test set def.rss <- sum((donnees.test$y-def.pred)^2) print(def.rss) plot(donnees.train) #***************** #linear regression #***************** #Linear Models reg <- lm(y ~., data = donnees.train) print(summary(reg)) #error sum of squares of the model on the test set reg.pred <- predict(reg,newdata = donnees.test) reg.rss <- sum((donnees.test$y-reg.pred)^2) print(reg.rss) #pseudo-r-squared print(1.0-reg.rss/def.rss) #********************************** #rbf epsilon-svr with cost = 1.0 #********************************** epsilon.svr <- svm(y ~.,data = donnees.train, scale = T, type = "eps-regression", kernel = "radial", cost = 1.0, epsilon=0.1,tolerance=0.001, shrinking=T, fitted=T) print(epsilon.svr) #prédiction esvr.pred <- predict(epsilon.svr,newdata = donnees.test) esvr.rss <- sum((donnees.test$y-esvr.pred)^2) #pseudo-R2 print(1.0-esvr.rss/def.rss) esvr.rmse=rmse(donnees.test$y,esvr.pred) print(esvr.rmse) #**************************************************** #detect the "best" cost parameter for rbf epsilon-svr #**************************************************** costs <- seq(from=0.05,to=3.0,by=0.005) pseudor2 <- double(length(costs)) for (c in 1:length(costs)){ epsilon.svr <- svm(y ~.,data = donnees.train, scale = T, type = "eps-regression", kernel = "radial", cost = costs[c], epsilon=0.1,tolerance=0.001, shrinking=T, fitted=T) #prédiction esvr.pred <- predict(epsilon.svr,newdata = donnees.test) esvr.rss <- sum((donnees.test$y-esvr.pred)^2) pseudor2[c] <- 1.0-esvr.rss/def.rss } #graphical representation plot(costs,pseudor2,type="l") #show the max. of pseudo-r2 and the corresponding cost parameter print(max(pseudor2)) k <- which.max(pseudor2) print(costs[k])
And my maindata in excel worksheet is :
subset x1 x2 y train 18 1088 9.77 train 0 831 5.96 train 0 785 5.36 train 0 762 5.08 train 0 749 4.92 train 0.5 731 4.69 train 0 727 4.64 train 2 743 4.84 train 5 818 5.83 train 12 942 7.49 train 13 973 7.98 train 89.5 1292 12.94 train 46.5 1086 9.61 train 5.5 877 6.59 train 1 826 5.89 train 0.5 780 5.3 train 3.5 756 5 train 4 764 5.1 train 28.5 851 6.26 train 10 866 6.45 train 20.5 839 6.09 train 7 759 5.03 train 0.5 722 4.57 train 0 708 4.4 train 0 694 4.22 train 0 689 4.16 train 0 679 4.03 train 11 769 5.2 train 0.5 697 4.26 train 10.5 702 4.33 train 1.5 692 4.2 train 3 743 4.86 train 16 958 7.98 train 14 835 6.05 train 0 713 4.46 train 0.5 671 3.94 train 0 659 3.79 train 0 646 3.63 train 0.5 636 3.52 train 0 627 3.43 train 0 629 3.44 train 1 682 4.1 train 8.5 735 4.81 train 1 729 4.67 train 0 649 3.66 train 56 774 5.29 train 1.5 663 3.84 train 5.5 787 5.49 train 50 839 6.14 train 6.5 699 4.29 train 1.5 756 5.03 train 11.5 669 3.91 train 5 684 4.1 train 0 653 3.71 train 0.5 669 3.94 train 0 638 3.53 train 0.5 647 3.65 train 12.5 715 4.56 train 7.5 921 7.37 train 50 1149 10.95 train 10.5 772 5.21 train 23.5 1205 11.93 train 23.5 1171 11.01 train 8.5 927 7.26 train 0.5 1009 8.45 train 4 1019 8.62 train 0 968 7.88 train 2 862 6.38 train 22 1349 14.15 train 16.5 1029 8.74 train 8.5 846 6.15 train 0.5 853 6.26 train 9.5 819 5.81 train 19.5 775 5.24 train 23 746 4.88 train 46.5 723 4.58 train 1 733 4.72 train 26.5 731 4.69 train 34.5 814 5.81 train 2 743 4.84 train 0 715 4.49 train 4 680 4.05 train 8 816 5.85 train 20 823 5.91 train 0.5 824 5.93 train 2.5 746 4.88 train 0 817 5.87 train 0 732 4.7 train 6 682 4.07 train 0 685 4.12 train 1 719 4.56 train 10.5 701 4.31 train 23.5 1002 8.74 train 23.5 947 7.71 train 8.5 808 5.66 train 0.5 835 6.06 train 4 811 5.71 train 0 709 4.42 train 2 696 4.25 train 22 913 7.21 train 16.5 860 6.42 train 8.5 902 7.15 train 0.5 781 5.32 train 9.5 862 6.45 train 19.5 833 6.02 train 23 803 5.63 train 46.5 903 7.06 train 1 822 5.86 train 26.5 1040 9.19 train 34.5 939 7.55 train 2 793 5.48 train 0 730 4.68 train 4 719 4.53 train 8 706 4.38 train 20 829 5.99 train 0.5 724 4.6 train 2.5 697 4.26 train 0 669 3.91 train 0 657 3.76 train 6 724 4.66 train 0 657 3.76 train 1 676 4.02 train 23.5 968 8.24 train 0 696 4.25 train 12 727 4.73 train 0.5 651 3.69 train 3.5 685 4.12 train 0.5 668 3.9 train 0 626 3.4 train 0 619 3.32 train 1 697 4.34 train 0.5 624 3.37 train 13.5 683 4.14 train 0 651 3.68 train 0 621 3.33 train 0 612 3.24 train 3 668 3.91 train 0 626 3.39 train 0.5 614 3.27 train 0 614 3.26 train 2.5 630 3.45 train 0.5 617 3.3 train 0 616 3.3 train 8 684 4.14 train 0.5 612 3.24 train 0 598 3.09 train 0 588 2.99 train 0 590 3 train 6 648 3.71 train 0 598 3.1 train 2 614 3.29 train 33 804 5.9 train 0 619 3.32 train 0 588 2.98 train 0 577 2.87 train 0 571 2.81 train 0.5 572 2.82 train 4.5 607 3.2 train 0 579 2.89 train 0 562 2.72 train 0 565 2.74 train 0 554 2.63 train 0 543 2.51 train 0 536 2.44 train 0 531 2.39 train 0 532 2.4 train 0.5 529 2.36 train 0 527 2.35 train 0 528 2.36 train 0 523 2.31 train 0 521 2.29 train 0 523 2.31 train 0.5 541 2.49 train 0 522 2.3 train 0.5 533 2.42 train 2 529 2.37 train 10 638 3.65 train 0.5 544 2.52 train 5 627 3.52 train 0 535 2.43 train 0 516 2.24 train 0 520 2.27 train 32 841 6.55 train 11.5 838 6.29 train 0 595 3.06 train 0.5 592 3.03 train 0 558 2.67 train 0 540 2.48 train 0 534 2.42 train 2 539 2.46 train 13 623 3.42 train 0 553 2.62 train 0 561 2.71 train 0 546 2.55 train 0 512 2.2 train 2 518 2.26 train 32 702 4.46 train 27 731 4.76 train 1 604 3.15 train 0 584 2.94 train 0 548 2.57 train 0 519 2.26 train 29.5 735 4.91 train 0 564 2.74 train 12 606 3.23 train 0 542 2.51 train 0 516 2.24 train 0 508 2.15 train 0 500 2.07 train 0 495 2.03 train 0 496 2.04 train 0 492 1.99 train 0 496 2.04 train 0 490 1.98 train 0 494 2.02 train 0 490 1.99 train 3 548 2.62 train 17 546 2.61 train 9.5 737 4.95 train 1.5 584 2.96 train 0 521 2.27 train 0.5 526 2.34 train 0 539 2.48 train 24.5 699 4.45 train 41 740 4.97 train 3 569 2.8 train 1 525 2.32 train 0 511 2.18 train 0 498 2.05 train 2 597 3.22 train 0.5 520 2.27 train 66 909 7.77 train 23 716 4.54 train 0.5 564 2.74 train 4.5 582 2.94 train 0 577 2.88 train 0 527 2.34 train 0 512 2.19 train 0 503 2.09 train 8.5 561 2.73 train 0 533 2.4 train 24.5 640 3.77 train 0 515 2.21 train 0 496 2.03 train 0 485 1.93 train 0 480 1.88 train 0 476 1.85 train 0 480 1.88 train 24 689 4.34 train 0 568 2.79 train 0 506 2.12 train 8.5 680 4.19 train 12 657 3.87 train 5.5 635 3.61 train 19.5 761 5.18 train 1.5 567 2.77 train 3.5 678 4.1 train 4 574 2.84 train 7 628 3.5 train 6 656 3.77 train 0 551 2.6 train 0.5 526 2.33 train 0.5 555 2.64 train 8.5 666 4.01 train 1 564 2.74 train 0 534 2.41 train 0 521 2.27 train 7.5 599 3.15 train 4.5 585 2.96 train 3 647 3.65 train 0 547 2.56 train 0 531 2.38 train 0 508 2.15 train 0 500 2.08 train 0 503 2.09 train 0 492 1.99 train 0.5 492 1.99 train 5 647 3.92 train 0 513 2.19 train 6.5 523 2.3 train 2 527 2.35 train 2 522 2.3 train 22.5 817 6.14 train 18.5 808 5.86 train 8.5 775 5.37 train 4.5 705 4.37 train 58 891 6.96 train 7 642 3.58 train 7 614 3.29 train 10.5 772 5.29 train 7.5 714 4.54 train 3.5 613 3.25 train 6 575 2.85 train 24.5 680 4.19 train 18.5 801 5.64 train 0 640 3.55 train 6.5 610 3.23 train 0.5 592 3.03 train 36.5 835 6.2 test 0 673 3.97 2.97 2.49 test 0.5 571 2.81 3.74 2.3 test 0 553 2.62 3.56 3.1 test 6 597 3.17 3.52 3.46 test 7 584 2.97 3.75 3.6 test 4.5 649 3.74 3.76 3.5 test 9.5 636 3.56 5.27 5.4 test 14.5 629 3.52 3.69 3.65 test 6.5 648 3.75 3.01 3 test 18 653 3.76 4.07 4.1 test 25.5 767 5.27 3.52 3.46 test 16 650 3.69 5.49 5.1 test 0.5 589 3.01 5.79 5.3 test 18.5 676 4.07 5.29 5.12 test 10 635 3.52 3.4 3.2 test 64 784 5.49 4.11 4.3 test 35.5 812 5.79 2.91 3 test 17.5 775 5.29 2.66 2.9 test 0.5 627 3.4 2.88 2.4 test 7 680 4.11 4.46 4.26 test 0 581 2.91 7.43 6.6 test 0 557 2.66 10.73 9.08 test 0 578 2.88 10.87 9.4 test 21 707 4.46 10.3 9.1 test 40 911 7.43 11.52 10.7 test 61 1151 10.73 11.33 10.4 test 42 1144 10.87 10.61 10.8 test 13 1121 10.3 13.26 13.29 test 6.5 1208 11.52 16.74 15.2 test 7.5 1206 11.33 13.26 12.7 test 0.5 1158 10.61 13.36 12.9 test 30.5 1328 13.26 11.22 11.19 test 84 1529 16.74 10.68 13.1 test 18.5 1332 13.26 13.22 13.8 test 8 1338 13.36 8.68 9.1 test 0.5 1199 11.22 8.13 10.05 test 19.5 1163 10.68 7.51 7.8 test 36.5 1313 13.22 7.05 9.6 test 1.5 1026 8.68 6.99 10.7 test 1 988 8.13 6.39 6.18 test 0 945 7.51 6.71 6.12 test 0 912 7.05 8.51 8.28 test 2 907 6.99 7.69 7.95 test 0.5 864 6.39 7.66 7.2 test 4 887 6.71 6.73 6.9 test 20 1012 8.51 6.86 6.4 test 21.5 957 7.69 8.88 8.1 test 17.5 955 7.66 7.26 7.4 test 1 889 6.73 6.35 6.32 test 11 898 6.86 6.25 6.18 test 9.5 1039 8.88 6.32 6.2 test 2.5 927 7.26 7.46 7.7 test 2.5 859 6.35 5.7 5.4 test 5 853 6.25 7.5 7.9 test 4 858 6.32 6.51 6.3 test 8 936 7.46 7.51 7.39 test 4 811 5.7 9.02 9.01 test 9 937 7.5 6.16 6.12 test 9 871 6.51 5.35 5.6 test 9 943 7.51 5.61 5.9 test 5 1047 9.02 8.56 8.3 test 6.5 846 6.16 7.3 7.1 test 2 784 5.35 6.4 6.2 test 3.5 804 5.61 5.46 5.43 test 0 726 4.63 5.3 5.32 test 37 917 7.3 7.2 7.12 test 12 864 6.4 6.1 6.01
So what should i do now? How can i solve this error?
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
If it is possible , please correct my code . I am not very familiar with Rstudio and R.
window(…): need finite 'ylim' values occurs when you try to plot data that contains missing or non-numeric values on the y-axis. You will get a similar error: plot. window(…): need finite 'xlim' values if you have missing or non-numeric values on the x-axis.
You can use the xlim() and ylim() functions to set the x-axis limits and y-axis limits of plots in R.
The problem is that you're (probably) trying to plot a vector that consists exclusively of missing (NA
) values. Here's an example:
> x=rep(NA,100) > y=rnorm(100) > plot(x,y) Error in plot.window(...) : need finite 'xlim' values In addition: Warning messages: 1: In min(x) : no non-missing arguments to min; returning Inf 2: In max(x) : no non-missing arguments to max; returning -Inf
In your example this means that in your line plot(costs,pseudor2,type="l")
, costs
is completely NA
. You have to figure out why this is, but that's the explanation of your error.
From comments:
Scott C Wilson: Another possible cause of this message (not in this case, but in others) is attempting to use character values as X or Y data. You can use the class function to check your x and Y values to be sure if you think this might be your issue.
stevec: Here is a quick and easy solution to that problem (basically wrap x in as.factor(x)
)
This error appears when the column contains character, if you check the data type it would be of type 'chr' converting the column to 'Factor' would solve this issue.
For e.g. In case you plot 'City' against 'Sales', you have to convert column 'City' to type 'Factor'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With