嗨!我在R中使用了一个名为stylo
的包,用于Stylemetric目的(基本上是机器学习,用于根据词法频率识别文学作者),但我在Python中使用了rpy2
。在
在R中,我将执行以下操作:
library(stylo)
cosine.delta = function(x){
# z-scoring the input matrix of frequencies
x = scale(x)
# computing cosine dissimilarity
y = as.dist( x %*% t(x) / (sqrt(rowSums(x^2) %*% t(rowSums(x^2)))) )
# then, turning it into cosine similarity
z = 1 - y
# getting the results
return(z)
}
stylo(distance.measure="cosine.delta")
现在在Python中,我知道如何调用library
和函数stylo
,但我不知道如何定义函数cosine.delta
。有什么想法吗?我试过这样的事情:
它说{
是无效语法。我一直在尝试不同的东西(其他类型的括号,使用
from rpy2.robjects.packages import importr
base = importr('base'))
但是什么都不管用我对R或rpy2
语法都不太了解。。。在
您可以通过
rpy2
运行任何R代码,只需将其放入一个大字符串中,并将该字符串作为参数传递到R()
。对于您来说,以下方法应该有效:这基本上只是R代码(用
cosinedelta
而不是cosine.delta
,不确定这是否重要),包装在''' '''
中使其成为python中的多行字符串,R( )
将其包装成R代码执行。在最后一行代码的工作方式类似。为了安全起见,我将反斜杠放在应该直接传递到R中的引号前面,以确保python不会尝试对它们做任何有趣的事情,而是将它们按应该的方式传递给R。在
对于这个答案,我基本上改编了documentation中的一个例子,你自己来看看可能也很有用。在
相关问题 更多 >
编程相关推荐