On Apr 13, 2013, at 12:36 PM, David Winsemius wrote:

> 
> On Apr 13, 2013, at 3:34 AM, Kristi Glover wrote:
> 
>> Hi R user, 
>> Could you please give me some hints on how I can convert text in table 
>> format in R?
>> I was doing model assessment using dismo package
>> for example: 
>> bg <- randomPoints(current, 500)
> 
> I doubt very much that 'randomPoints' is a base function. You are asked to 
> include the names of contributed packages. Failing to do so implies that you 
> expect us to go search for the package. I used to do so but have abandoned 
> that action since it implicitly encourages inconsiderate behavior.

OOOPs. The package name was mentioned and it was not one I recognized and I 
missed it. I guess I needed to be hit over the head.

> 
>> pvtest <- data.frame(extract(current, occtest))
>> avtest <- data.frame(extract(current, bg))
>> e2 = evaluate(model, p=pvtest, a=avtest)
>>> e2
>> class          : ModelEvaluation 
>> n presences    : 10 
>> n absences     : 1000 
>> AUC            : 0.9952 
>> cor            : 0.6453986 
>> max TPR+TNR at : 0.4496625 
>> 
>> I wanted to put the e2 into table. How can I change the text (e2 results) in 
>> table format? 
> 
> If we knew what structure  the 'evaluate' function in the unnamed package was 
> returning, we might be able to help. There is probably either an S3-print 
> method or an S4-show method that is displaying that text but such results are 
> not always a good guide to what is returned as the object from a function.

Running the example in dismo::evaluate

> p <- rnorm(50, mean=0.7, sd=0.3)
> # b has the predicted values for 50 background locations (or absence)
> a <- rnorm(50, mean=0.4, sd=0.4)
> e <- evaluate(p=p, a=a)
> 
> e
class          : ModelEvaluation 
n presences    : 50 
n absences     : 50 
AUC            : 0.7044 
cor            : 0.3595658 
max TPR+TNR at : 0.4903 


str(capture.output(e))
 chr [1:6] "class          : ModelEvaluation " "n presences    : 50 " "n 
absences     : 50 " ...

So capture.output will return a character vector with the lines of the show 
method for the S4 value returned by `evaluate`. If you wanted to capture that 
as a dataframe you could do this:

> out <- read.table(text=capture.output(e), sep=":")
> out
               V1                V2
1 class            ModelEvaluation 
2 n presences                   50 
3 n absences                    50 
4 AUC                       0.7044 
5 cor                    0.3595658 
6 max TPR+TNR at            0.4903 

Or you could extract some (but not all) of the values using "@":

e@np   # returns 50

e@auc  # returns 0.704



> 
>> Thanks
>> Kristi
>> 
>>      [[alternative HTML version deleted]]
> 

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to