Eğer Scala içinden R (kütüphaneler) kullanılarak R ve Scala'dan R'yi kullanmak ve Scala'yı R'den çağırmak için?
- görüşme imkanlarının hakkında bir şeyler biliyor musunuz?
Saygılarımızla
Raffael
Eğer Scala içinden R (kütüphaneler) kullanılarak R ve Scala'dan R'yi kullanmak ve Scala'yı R'den çağırmak için?
Saygılarımızla
Raffael
doğrudan Scala arayüzü olup olmadığını bilmiyorum, ama rJava http://www.rforge.net/rJava/ yardımcı olmalıdır.
JRI Ben Scala öğrenme bu süre yazdım. Artık işe yarayıp yaramadığından emin değilim. JRI ambalajında biraz DSL vardı. Muhtemelen Makros ve arkadaşları şimdi daha iyi yapabilirdi.
https://github.com/hughleat/scala2R
arayan şey olabilir olduğunu
CRAN'da bulunan R içinde jvmr package'a bakın.
Scala tercüman/derleyici gömmek: Bu size izin verir. Kullanımını açıklayan bir makale here'dur. (Açıklama: Ben yazarım.)
Çok yardımcı. Birisi, kafes/kafes grafik/çizime temiz bir Scala adaptörü oluşturmak için bunu kullanmayı çok isterim. JFreeChart, JMathPlot, vb unut, R komplo kazanıyor! – metasim
@David: Bu yazı için teşekkürler. Çok yardımcı oldu ve ben R tercüman scala çalışan başarılı elde etmek mümkün oldu ama ben nasıl da bilmek istiyorum gibi (örneğin, tarama, laply..etc) gibi Scala R Fonksiyonu bazı kullanımı nasıl emin değilim plyr ve scala'dan diğer araçlar gibi kütüphaneler ekleyin. Herhangi bir Yardım büyük takdir edilecektir. – Pawan
@Pawan Me de, R kütüphaneleri nasıl ekleneceğini bilmek istiyorum.Bir çözüm buldun mu ? –
Bunu jvmr kullanarak başardım. Aşağıdaki kod, scala konsolundan çalıştırdığım örnek apache kıvılcım uygulamasıdır.
package org.scala.rtest
import org.ddahl.jvmr.RInScala
object RIntegration {
def main(args: Array[String]) {
val R = RInScala()
R>"""
require(sparkR)
score.sentiment = function(sentences, pos.words, neg.words, .progress='none')
{
require(plyr)
require(stringr)
scores = laply(sentences, function(sentence, pos.words, neg.words) {
# clean up sentences with R's regex-driven global substitute, gsub():
sentence = gsub('[[:punct:]]', '', sentence, ignore.case=T)
sentence = gsub('[[:cntrl:]]', '', sentence, ignore.case=T)
sentence = gsub('\\d+', '', sentence, ignore.case=T)
# and convert to lower case:
sentence = tolower(sentence)
# split into words. str_split is in the stringr package
word.list = str_split(sentence, '\\s+')
# sometimes a list() is one level of hierarchy too much
words = unlist(word.list)
# compare our words to the dictionaries of positive & negative terms
pos.matches = match(words, pos.words)
neg.matches = match(words, neg.words)
# match() returns the position of the matched term or NA
# we just want a TRUE/FALSE:
pos.matches = !is.na(pos.matches)
neg.matches = !is.na(neg.matches)
# and conveniently enough, TRUE/FALSE will be treated as 1/0 by sum():
score = sum(pos.matches) - sum(neg.matches)
return(score)
}, pos.words, neg.words, .progress=.progress)
scores.df = data.frame(score=scores, text=sentences)
return(scores.df)
}
"""
R(" x <- scan('positive-words.txt',what='character',comment.char=';')")
R(" y <- scan('negative-words.txt',what='character',comment.char=';')")
R(" z <- scan('twitterstream1.txt', what='character')")
R.eval("df <- score.sentiment(z,x,y)")
println(R.capture("df"))
}
}
Bu yardımcı olur umarım.
"Rscala" adı verilen tam olarak bu amaçla CRAN'da bir R paketi var. İki yönlü çağrının (Scala'dan R ve Scala'dan R) yanı sıra geri aramalara (örn. R den Scala kodundan R'ye geri çağrı) izin verir. Bu well documented. Bu paket başka bir cevapta belirtilen "jvmr" paketinin yerini alır.
CRAN link: https://cran.r-project.org/web/packages/rscala/ – michael
Herkese merhaba. Bu durum için özel bir yol belki de bir Restful hizmeti kullanmak olacaktır. Bununla birlikte, R'de yalnızca diğer Restful Hizmetlerine erişmek ve bir Restful Hizmet sunmamak mümkündür. Dolayısıyla, http’un PUT ve DELETE’ini destekleyen bir http paketinin (veya lib dosyasının) gerekli olması gerekir. R Data yapılarını XML'ye serpiştiren bir paket var (hangisini unuttuysanız) bu kolay olurdu. Bir http paketi için herhangi bir işaretçi var mı? Https GET için R.rsp paketini seviyorum, ama PUT ve DELETE için ne kullanmalıyım? Nihai hedef, R ve haskell'i birleştirmek olurdu. – mrsteve