Seite 1 von 1

R-Code aus Python laufen lassen

Verfasst: Di Nov 15, 2016 7:27 pm
von consuli
Hallo zusammen!

[edit]
Ich habe das Thema des Threads nun breiter gefasst.
[/edit]

Mit der Pythjon rpy library kann man R Code innerhalb von Python laufen lassen.

Frage:
Geht das nur mit R Base oder auch mit weiteren R-Packages?

Re: R-Code aus Python laufen lassen

Verfasst: Mi Nov 16, 2016 9:10 pm
von consuli
EDi hat geschrieben:
Die von consuli angesprochenen Schnittstellen von R und Python sollten on topic sein.
Python in R geht wunderbar durch das gleichnamige Package.
Andersrum, fällt mir IPython ein, wo am R-Code Stücke einbinden kann.
Das ist, glaube ich, so nicht ganz richtig. Ipython ist doch nur ein Editor/ IDE für Python, oder nicht? :?

Re: R-Code aus Python laufen lassen

Verfasst: Do Nov 17, 2016 5:33 pm
von EDi
Das ist, glaube ich, so nicht ganz richtig. Ipython ist doch nur ein Editor/ IDE für Python, oder nicht? :?
Hast recht, irgendwas wird da schon unter der Haube laufen für das ganze Rmagic. Weiß aber nicht was...

Re: R-Code aus Python laufen lassen

Verfasst: Sa Nov 19, 2016 9:47 pm
von consuli
Meine Eingangs gestellte Frage, ob man nur R-Base in rpy laufen lassen kann oder auch weitere R-Pakete, wurde weder hier noch im Python Forum beantwortet. Falls das jemand weiss, würde ich mich über eine Antwort sehr freuen.

Re: R-Code aus Python laufen lassen

Verfasst: Sa Nov 19, 2016 11:29 pm
von EDi
Sollte möglich sein.
Im Ipython notebook (dass rpy2 nutzt) geht das mit der rmagic problemlos.
Siehe hier für ein Beispiel in dem ich aus einem python np.array ein ggplot erstelle.
Wenns in ipython geht via rpy2 geht, wieso nicht in normal python?

Re: R-Code aus Python laufen lassen

Verfasst: Di Nov 22, 2016 9:24 pm
von consuli
EDi hat geschrieben:Wenns in ipython geht via rpy2 geht, wieso nicht in normal python?
Du meinst, wenn das R Paket ggplot unter rpy2 läuft, wieso dann nicht auch andere Pakete? Das klingt plausibel.
geht das mit der rmagic problemlos.
Von Rmagic habe ich noch nichts gehört, wohl aber von sogenannten magic methods. Das eine hat mit dem anderen glaube ich nichts zu tun.

Re: R-Code aus Python laufen lassen

Verfasst: Mi Nov 23, 2016 10:22 am
von EDi
Du meinst, wenn das R Paket ggplot unter rpy2 läuft, wieso dann nicht auch andere Pakete? Das klingt plausibel.
Genau!
Von Rmagic habe ich noch nichts gehört, wohl aber von sogenannten magic methods. Das eine hat mit dem anderen glaube ich nichts zu tun.
Ne, dacht an sowas, aber vielleicht hab ich auch Terminologie vertauscht...

Re: R-Code aus Python laufen lassen

Verfasst: Mi Nov 23, 2016 7:18 pm
von consuli
Ok, dann ist der Ipython **MAGIC** Befehl
also ein verkürzter rpy2 Aufruf von R
in dem rpy2 script

Code: Alles auswählen

import rpy2
import numpy as np
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()
%load_ext rpy2.ipython

The rpy2.ipython extension is already loaded. To reload it, use:
  %reload_ext rpy2.ipython

df = np.array([(1, 2), (2, 3), (4, 5)], dtype=[('x', 'f4'),('y', 'f4')])

%%R -i df
require("ggplot2")
ggplot(df, aes(x = x, y = y)) + geom_point()
Haben wir die **MAGIC** mal erledigt.

Aber mal unter uns Hausfrauen. Wollen wir wirklich einen Editor abhängigen Code haben? Der läuft ja dann in der Shell nicht mehr (oder wie Du immer so schön sagst im Terminal).

Re: R-Code aus Python laufen lassen

Verfasst: Do Nov 24, 2016 7:44 am
von EDi
Aber mal unter uns Hausfrauen. Wollen wir wirklich einen Editor abhängigen Code haben? Der läuft ja dann in der Shell nicht mehr (oder wie Du immer so schön sagst im Terminal).
Nein sicherlich nicht. Ich bin auch nicht von Ipython komplett überzeugt, finde es aber trotzdem sehr gut!
ABER: Wenn es in Ipython geht mit dieser magic, dann sollte das doch auch mit rpy2 im "normalen" python gehen?!

Hast du das mal ausprobiert (ich hab gerade 0 Zeit zum "spielen" :(()