Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 Laboratorio
 Bioinformatica e Biostatistica
 R e perl. Modulo Statistics::R
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

stefanken
Nuovo Arrivato



39 Messaggi

Inserito il - 10 giugno 2010 : 09:19:28  Mostra Profilo  Visita l'Homepage di stefanken Invia a stefanken un Messaggio Privato  Rispondi Quotando
Carissimi,
come state? Io devo ammettere di essere stato meglio in passato...
comunque:
Ho bisogno di interfacciare R ai miei script perl. Ho trovato il modulo Statistics::R e dopo averlo installato (con qualche difficoltà: esiste un simpatico bug relativo alla opzione --gui=none) ho fatto uno scriptino di prova seguendo la descrizione trovata sull'apposita pagina di CPAN relativa al modulo.
il mio script di prova è:

#!/usr/bin/perl

use strict;

use Statistics::R ;

my $R = Statistics::R->new() ;

$R->startR ;

$R->send('x <- 123') ;

$R->send('x');

my $results=$R->read();

$R->stopR;

print "$results";
print "****\n";

exit;


ebbene, mi aspetterei di ottenere in output

123****

ma niente da fare, ottengo solo gli asterischi. La variabile $results rimane vuota.

Sapreste dirmi come mai?
Saluti
Stefano

kORdA
Utente Attivo

newkORdA

Prov.: Milano
Città: Monza


1303 Messaggi

Inserito il - 10 giugno 2010 : 12:34:43  Mostra Profilo  Visita l'Homepage di kORdA  Clicca per vedere l'indirizzo MSN di kORdA Invia a kORdA un Messaggio Privato  Rispondi Quotando
la funzione read legge lo standard out del terminale di R. D'altra parte i comandi inviati con send vengono interpretati come se lanciassi uno script, come se in R lanciassi una cosa tipo source(file='mioscript.R')

Visualizzare il contenuto di una variabile richiamandola è possibile solo con la shell interattiva. Per fare la stessa cosa con read dovresti passargli qualcosa del tipo $R->send('print(x)');

Ad essere sincero però diffido dall'usare la funzione read, perche' raccoglie tutto l'output senza soluzione di continuita'. Sarebbe piu' conveniente salvare i dati che ti interessano su un file (con i comandi R tipo 'write'), e fare un parsing da Perl in seconda battuta.

Un'ultima cosa importante su questo modulo. Con Statistics::R puoi lanciare piu' script contemporaneamente. In realta' si tratta di piu' istanze dello stesso processo di R, quindi non e' assolutamente equivalente a lanciare in Perl un fork su piu' oggetti di classe Statistics::R.

http://www.linkedin.com/in/dariocorrada
Torna all'inizio della Pagina

stefanken
Nuovo Arrivato



39 Messaggi

Inserito il - 11 giugno 2010 : 19:37:05  Mostra Profilo  Visita l'Homepage di stefanken Invia a stefanken un Messaggio Privato  Rispondi Quotando
caro/a korda,
grazie molte per i tuoi commenti. L'utilizzo di R in modalità principalmente interattiva mi ha tratto in inganno.
Vorrei commentare però in merito al tuo consiglio (che sicuramente centra il punto e risolve egregiamente il problema pratico):
immagino che chi come me ha la necessità di utilizzare un modulo perl che costituisca un bridge tra perl ed R si aspetti una interazione di tipo bidirezionale.
Almeno, io mi aspetto di dialogare con R direttamente da perl. Utilizzare il modulo "solo" per lanciare un comando e poi acquisire i risultati con un parsing di un output testuale mi sembra, come filosofia di utilizzo, un compromesso che mi lascia un po' perplesso.
Insomma, se dovessi trovare solo un modo per lanciare uno script R potrei benissimo farlo scrivere al programma perl per poi lanciarlo con una chiamata di sistema ed in fine effettuare il parsing dell'output. Questo mi sembra onesto: perl e R si parlano attraverso files esterni e chiamate di sistema,ma certamente non sofisticato. Ma mi aspetterei da Statistics::R qualcosa di un po' più evoluto
Saluti
Stefano
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina