28

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.

5
  • 1
    You need to isolate just the line of code that produces this error. It is straightforward. You have asked for an infinite plotting region. Look at your costs and pseudor objects to see if they have any real values that aren't NA.
    – Thomas
    Commented Jan 25, 2014 at 11:08
  • I don't know more about R, the data i entered here is not complete as i seen and when i edit it doesn't been done. It has 4 column , for 2 more column : train have NA value and test have numeric values. Commented Jan 25, 2014 at 11:57
  • I enter the complete maindata of my work. so what should i do? one another question is about rmse. how can i calculate this? how is it? Commented Jan 26, 2014 at 9:05
  • Please read about how to ask how to ask good questions and how to provide reproducible R examples. It's very hard to help you when you just dump a ton of code and unformatted code into your question. We can really only provide help when you isolate what is causing the problem. My answer below explains what is happening in your case.
    – Thomas
    Commented Jan 26, 2014 at 11:33
  • 1
    Sorry i'm not familiar with english language and R . so i don't know how and what should i ask! I think i should leave here for this case because my questions are a lot and bother others. Thanks Commented Jan 26, 2014 at 12:30

7 Answers 7

37

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))

0
6

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'

4

I had the same problem. My solution was to make all vectors numeric.

0
2

I had the same problem. I solve it when I convert string to factor. In your case, check the class of variable and check if they are numeric and 'train and test' should be factor.

1
  • I am just having this problem with the function phylomorphospace, when plotting two numeric variables, with no Nas. So that seems possible, too. Commented Jun 16, 2021 at 15:27
1

At the end of 2021, this is one of the top links when "Error in plot.window(...) : need finite 'xlim' values" is searched. It is True, that this error comes up if/when data has NA values or if it is non-numeric.

However, I am adding another situation when this comes up. Following code also results in same error.

# Create dataframe
jj <- data.frame(x = 1:10, y = 1:10)
# Plot and assign to an object 
p <- plot(jj$x, jj$y)

p
## NULL

# calling plot again on the 'p' will throw this error
plot(p)
##Error in plot.window(...) : need finite 'xlim' values
##In addition: Warning messages:
##1: In min(x) : no non-missing arguments to min; returning Inf

Solution for this is given in this answer.

# #Call the plot without assignment
plot(jj$x, jj$y)
# #Record the plot in p
p <- recordPlot()
dev.off()
# #Now the p contains a plot 
p

# #NOTE To plot, call 'p' here, not plot(p). 'plot(p)' will throw a different error.
#plot(p)
#Error in xy.coords(x, y, xlabel, ylabel, log) : 
#  'x' is a list, but does not have components 'x' and 'y'

Same pattern can be followed to save the plot as a .png file also. (Which was my original problem that landed me here)

0

For me the solution was adding header=TRUE as argument

data <- read.table("...file...", header=TRUE)

0

The problem is simple. There are some NULL values in your data, and these values are causing the error. One simple way I used to solve the issue is to account for that by making R know about it when we read the file.

donnees <- read.csv("F:/new work with shahab/Code-SVR/SVR/MainData.csv", stringsAsFactors = TRUE)

This means we set stringsAsFactors = TRUE argument to true.

Not the answer you're looking for? Browse other questions tagged or ask your own question.