установка rpy2 на MacBook в ноутбуке Jupyter

#python #r #jupyter-notebook

Вопрос:

Пытаюсь установить rpy2 модули на терминал, но никаких действий не происходит.

Попытка прямой установки rpy2 на сотовый

 !pip install rpy2
%load_ext rpy2.ipython
%%R -i data 
data <- list('0.47', '-0.36', '-0.5', '0.2', '0.35', '1.82', 
             '-0.78', '-0.91', '0.36', '-1.74', '0.24', '0.76', 
             '0.57', '2.32', '1.55', '-1.31', '-0.09', '-0.02', 
             '-0.07', '-0.19', '-0.25', 
             '-1.09', '0.64', '1.22', '-0.56', '1.76', '0.13', 
             '1.33', '-0.74', '-1.15', '1.63', '1.04', '-0.26', 
             '0.02', '-1.2', '0.37', '0.43', '0.04', '1.34', 
             '0.57', '0.76', '-1.25', '-0.05', '0.12', '0.8', 
             '-0.99', '-0.11', '-0.54', '-0.08', '-0.04', '-0.76', 
             '-0.8', '0.35', '1.54', '-0.99', '-0.35', '-0.28', '0.45', 
             '-0.04', '-0.06', '0.02', '0.58', '-0.32', '-0.1', '0.28', 
             '0.3', '-0.36', '0.81', '0.79', '0.21', '1.81', '0.19', '0.84', 
             '0.2', '-0.06', '-0.11', '-1.4', '-2.08', '0.88', '-0.14',
             '-0.96', '1.3', '0.06', '-0.37', '1.49', '-0.91', 
             '1.14', '-1.05', '1.49', '-0.79', '2.02', '0.38', '2.4', '1.25', 
             '0.5', '1.11', '-0.54', '-0.1', '0.63', '1.01')
num <- as.numeric(unlist(data))
shapiro.test(num)
shapiro.test
 

Результаты показывают

  File "<ipython-input-3-0be657748cce>", line 20
    num <- as.numeric(unlist(data))
           ^
SyntaxError: invalid syntax
 

Это все равно не работает

Я просто хочу, чтобы код R был прикреплен к моей записной книжке Jupyter.

 data <- list('0.47', '-0.36', '-0.5', '0.2', '0.35', '1.82', 
             '-0.78', '-0.91', '0.36', '-1.74', '0.24', '0.76', 
             '0.57', '2.32', '1.55', '-1.31', '-0.09', '-0.02', 
             '-0.07', '-0.19', '-0.25', 
             '-1.09', '0.64', '1.22', '-0.56', '1.76', '0.13', 
             '1.33', '-0.74', '-1.15', '1.63', '1.04', '-0.26', 
             '0.02', '-1.2', '0.37', '0.43', '0.04', '1.34', 
             '0.57', '0.76', '-1.25', '-0.05', '0.12', '0.8', 
             '-0.99', '-0.11', '-0.54', '-0.08', '-0.04', '-0.76', 
             '-0.8', '0.35', '1.54', '-0.99', '-0.35', '-0.28', '0.45', 
             '-0.04', '-0.06', '0.02', '0.58', '-0.32', '-0.1', '0.28', 
             '0.3', '-0.36', '0.81', '0.79', '0.21', '1.81', '0.19', '0.84', 
             '0.2', '-0.06', '-0.11', '-1.4', '-2.08', '0.88', '-0.14',
             '-0.96', '1.3', '0.06', '-0.37', '1.49', '-0.91', 
             '1.14', '-1.05', '1.49', '-0.79', '2.02', '0.38', '2.4', '1.25', 
             '0.5', '1.11', '-0.54', '-0.1', '0.63', '1.01')
num <- as.numeric(unlist(data))
shapiro.test(num)
shapiro.test
 

Комментарии:

1. В вашей записной книжке создайте новую ячейку и запустите !pip install rpy2 ее, она установит пакет, и вам не придется использовать conda. Я столкнулся с подобной проблемой с помощью conda.

2. Это окно терминала предназначено только для вывода данных, но не для ввода. Если вы не видите promt (строка, начинающаяся с>,$, [] и т.д.), Вы можете ожидать, что это только для просмотра сообщений.

3. Вы действительно хотите создать систему записных книжек polyglot со средами R и python только для чтения вектора чисел? Экспортируйте данные в R с readr::write_lines помощью и прочитайте файл на python с помощью [float(x) for x in open("foo.txt", "r").readlines()] . Это гораздо проще. Jupyter не предназначен для простой работы с несколькими языками, а языки предназначены для чтения только из текстовых файлов.

4. Пожалуйста, скажите мне, какие функции python вы хотите использовать. Смешивание языков-это нетривиальная вещь. Кстати: rpy2 требуется, чтобы вы также установили R. И это должно быть доступно в ядре juptyter.

5. Вам нужно писать вместо , потому что данные являются выводом. %%R -o data data <- list(1,2,3) -i Вы также можете использовать только R в jupyter, используя IRkernel . Почему вы вынуждены использовать python?

Ответ №1:

В вашем примере показан только код R без каких-либо используемых функций python.

Вариант 1 (легко, без jupyter и python)

Если вам действительно не нужны Jupyter и python, вы можете просто создавать документы с ячейками кода R и текстом между ними, используя RMarkdon внутри RStudio.

Вариант 2 (жесткий, с jupyter и python)

  1. установите R и python
  2. установите Jupyter
  3. установите rpy2, используя ! pip install rpy2 внутри ячейки jupyter
  4. Запустите код R в записной книжке:
 import rpy2
%load_ext rpy2.ipython
%%R -o data 
data <- list(1,2,3)
 

Вариант 3 (средний, с jupyter, использующим только R без python)

  1. установите jupyter
  2. установите IRkernel
  3. запустите juypter и выберите ядро R
  4. напишите только код R в своих ячейках jupyter:

введите описание изображения здесь

Комментарии:

1. что это data <- list(1,2,3) значит? Как я могу преобразовать свое data вышесказанное в предложенную вами форму

2. Это заполнитель с любым кодом R. Просто замените его на data <- list('0.47', '... вместо

3. что это значит? данные уже были в форме data <- list('0.47', '...

4. Я добавил скриншот

5. как ты мог им управлять? Используя ядро R? Я понял