rpy2 - ошибка в sqrt (e.pow): нечисловой аргумент математической функции - PullRequest
0 голосов
/ 28 ноября 2018

Я использую надежный пакет статистики от Рэнда Уилкокса из rpy2 и поражаюсь при запуске надежного теста для сравнения n групп.

Следующая функция принимает DataFrame, и, насколько я могу судить из документов, целые числа, представляющие столбцы для зависимой переменной и назначения групп:

wilcox.btrim(df,g=2,dp=1)

Когда я ее запускаюиз rpy2 я получаю ошибку:

Error in sqrt(e.pow) : non-numeric argument to mathematical function

Та же самая ошибка возникает, если в качестве первого и единственного ввода я передаю список списков или df, где каждый столбец содержит значения группы.Оба из них также являются подходящими способами вызова функции.

Это мой DataFrame:

x = [1, 2, 3]
x = random.choices(x, k=150)
y = np.random.normal(0, 1, 150)

df = pd.DataFrame({
    'dependent_variable': y,
    'group_labels': x
})

df.head(10)

dependent_variable  group_labels
       -1.258020         1
        0.357578         3
        0.809774         1
        0.330426         3
       -0.210970         2

Вот как получить пакет, чтобы вы могли воспроизвести ошибку:

import pandas as pd
import rpy2.robjects as robjects
import random
import numpy as np
from rpy2.robjects import pandas2ri
from urllib.request import urlopen  
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
pandas2ri.activate()


url = urlopen('https://dornsife.usc.edu/assets/sites/239/docs/Rallfun-v35.txt')
string = b''.join(url.readlines()).decode()
wilcox = SignatureTranslatedAnonymousPackage(string, "wilcox")

Есть идеи, что здесь происходит?

...