Я пытаюсь запустить t-тест, используя r (с помощью пакета rpy2), для некоторых переменных из фрейма данных pandas.Я использую магические функции в блокноте jupyter, чтобы заставить python взаимодействовать с R. Взаимодействие успешно, за исключением цикла.
Вот кадр данных:
df.head()
Out[60]:
ID Category Num Vert_Horizon Description Fem_Valence_Mean \
0 Animals_001_h Animals 1 h Dead Stork 2.40
1 Animals_002_v Animals 2 v Lion 6.31
2 Animals_003_h Animals 3 h Snake 5.14
3 Animals_004_v Animals 4 v Wolf 4.55
4 Animals_005_h Animals 5 h Bat 5.29
Fem_Valence_SD Fem_Av/Ap_Mean Fem_Av/Ap_SD Arousal_Mean ... \
0 1.30 3.03 1.47 6.72 ...
1 2.19 5.96 2.24 6.69 ...
2 1.19 5.14 1.75 5.34 ...
3 1.87 4.82 2.27 6.84 ...
4 1.56 4.61 1.81 5.50 ...
Luminance Contrast JPEG_size80 LABL LABA LABB Entropy \
0 126.05 68.45 263028 51.75 -0.39 16.93 7.86
1 123.41 32.34 250208 52.39 10.63 30.30 6.71
2 135.28 59.92 190887 55.45 0.25 4.41 7.83
3 122.15 75.10 282350 49.84 3.82 1.36 7.69
4 131.81 59.77 329325 54.26 -0.34 -0.95 7.82
Classification valence_median_split temp_selection
0 Low_Valence OUT
1 High_Valence NaN
2 Low_Valence OUT
3 Low_Valence OUT
4 Low_Valence OUT
[5 rows x 35 columns]
Вот как япопытался это сделать:
%Rpush df
Variables = 'All_Valence_Mean', 'Male_Valence_Mean', 'Fem_Valence_Mean'
for var in Variables:
%R var + '_Sig' <- t.test(var ~ valence_median_split, data = df, var.equal = TRUE)
Я пытаюсь получить результаты для сохранения в переменную 'var' с добавленной строкой "Sig".Этот компонент не является критически важным, но я действительно хочу, чтобы эта команда распознала «var» как переменную в списке переменных.
Вот ошибка, которую я получил:
Error in model.frame.default(formula = var ~ valence_median_split, data = df) :
invalid type (list) for variable 'var'
Error in model.frame.default(formula = var ~ valence_median_split, data = df) :
invalid type (list) for variable 'var'
Error in model.frame.default(formula = var ~ valence_median_split, data = df) :
invalid type (list) for variable 'var'
/anaconda3/lib/python3.7/site-packages/rpy2/rinterface/__init__.py:146: RRuntimeWarning: Error in model.frame.default(formula = var ~ valence_median_split, data = df) :
invalid type (list) for variable 'var'
warnings.warn(x, RRuntimeWarning)