R-Code aus Python laufen lassen

... zu anderer statistischer Software, zu Datenbanken und Programmiersprachen.

Moderatoren: EDi, jogo

Antworten
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

R-Code aus Python laufen lassen

Beitrag 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?
Irmgard.
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: R-Code aus Python laufen lassen

Beitrag 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? :?
Irmgard.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: R-Code aus Python laufen lassen

Beitrag 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...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: R-Code aus Python laufen lassen

Beitrag 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.
Irmgard.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: R-Code aus Python laufen lassen

Beitrag 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?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: R-Code aus Python laufen lassen

Beitrag 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.
Irmgard.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: R-Code aus Python laufen lassen

Beitrag 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...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: R-Code aus Python laufen lassen

Beitrag 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).
Irmgard.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: R-Code aus Python laufen lassen

Beitrag 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" :(()
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten