#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)
- установите R и python
- установите Jupyter
- установите rpy2, используя
! pip install rpy2
внутри ячейки jupyter - Запустите код R в записной книжке:
import rpy2
%load_ext rpy2.ipython
%%R -o data
data <- list(1,2,3)
Вариант 3 (средний, с jupyter, использующим только R без python)
- установите jupyter
- установите IRkernel
- запустите juypter и выберите ядро R
- напишите только код R в своих ячейках jupyter:
Комментарии:
1. что это
data <- list(1,2,3)
значит? Как я могу преобразовать своеdata
вышесказанное в предложенную вами форму2. Это заполнитель с любым кодом R. Просто замените его на
data <- list('0.47', '...
вместо3. что это значит? данные уже были в форме
data <- list('0.47', '...
4. Я добавил скриншот
5. как ты мог им управлять? Используя ядро R? Я понял