如何从另一个 Jupyter 笔记本文件获取 R 代码?
How to source R code from another Jupyter notebook file?
我刚开始使用带有 R 内核 的 Jupyter notebook。
我在两个文件 Settings.ipynb
和 Main_data.ipynb
中编写了 R 代码。
我的 Settings.ipynb
文件有很多细节。我在下面显示示例详细信息
Schema = "dist"
resultsSchema = "results"
sourceName = "hos"
dbms = "postgresql" #Should be "sql server", "oracle", "postgresql" or "redshift"
user <- "hos"
pw <- "hos"
server <- "localhost/hos"
port <- "9763"
我想在 Main_data
代码文件中获取 Settings
文件。
当我使用R studio
时,很简单,因为我只使用下面的
source('Settings.R')
但是现在在 Main_data
带有 R 内核的 Jupyter Notebook 中,当我编写下面的代码时
source('Settings.R') # settings file is in same directory as main_data file
我收到以下错误
Error in source("Settings.R"): Settings.R:2:11: unexpected '['
1: {
2: "cells": [
^
Traceback:
1. source("Settings.R")
当我尝试以下操作时,出现另一个错误,如下所示
source('Settings.ipynb')
Error in source("Settings.ipynb"): Settings.ipynb:2:11: unexpected '['
1: {
2: "cells": [
^
Traceback:
1. source("Settings.ipynb")
如何获取 R code
以及保存它的正确方法(.ipynb
或 .R
在 jupyter notebook(使用 R 内核)中的格式)。你能帮我解决这个问题吗?
更新截图
我们可以在相同的工作目录(或不同的)中创建一个 .INI
文件并使用 ConfigParser
来解析所有元素。 .INI
文件将是
Settings.INI
[settings-info]
schema = dist
resultsSchema = results
sourceName = hos
dbms = postgresql
user = hos
pw = hos
server = localhost/hos
然后,我们初始化一个解析器object,从文件中读取内容。我们可以有多个子标题(这里只有 'settings-info')并使用 [[
或 $
提取组件
library(ConfigParser)
props <- ConfigParser$new()
props <- props$read("Settings.INI")$data
props[["settings-info"]]$schema
来自 Jupyter notebook
'Settings.INI' 文件
尝试以 .R
格式保存 Jupyter notebook 文件将不起作用,因为格式有点混乱(由于存在 { "cells" : [...."
之类的东西)。您可以通过打开来验证您在 Jupyter Notebook 中的 .R
文件。
但是,您可以使用 vim editor/R 工作室创建 .R
文件。这将使您能够按原样获得内容,而不会出现任何格式问题,例如 { "cells" : [...."
.
稍后从另一个 jupyter notebook,您可以 import/source 使用 vim editor/R studio 创建的 .R
文件。这为我解决了问题。
总而言之,不要使用 jupyter notebook 创建 .R
文件并使用另一个 jupyter notebook 文件获取它们。
我刚开始使用带有 R 内核 的 Jupyter notebook。
我在两个文件 Settings.ipynb
和 Main_data.ipynb
中编写了 R 代码。
我的 Settings.ipynb
文件有很多细节。我在下面显示示例详细信息
Schema = "dist"
resultsSchema = "results"
sourceName = "hos"
dbms = "postgresql" #Should be "sql server", "oracle", "postgresql" or "redshift"
user <- "hos"
pw <- "hos"
server <- "localhost/hos"
port <- "9763"
我想在 Main_data
代码文件中获取 Settings
文件。
当我使用R studio
时,很简单,因为我只使用下面的
source('Settings.R')
但是现在在 Main_data
带有 R 内核的 Jupyter Notebook 中,当我编写下面的代码时
source('Settings.R') # settings file is in same directory as main_data file
我收到以下错误
Error in source("Settings.R"): Settings.R:2:11: unexpected '['
1: {
2: "cells": [
^
Traceback:
1. source("Settings.R")
当我尝试以下操作时,出现另一个错误,如下所示
source('Settings.ipynb')
Error in source("Settings.ipynb"): Settings.ipynb:2:11: unexpected '['
1: {
2: "cells": [
^
Traceback:
1. source("Settings.ipynb")
如何获取 R code
以及保存它的正确方法(.ipynb
或 .R
在 jupyter notebook(使用 R 内核)中的格式)。你能帮我解决这个问题吗?
更新截图
我们可以在相同的工作目录(或不同的)中创建一个 .INI
文件并使用 ConfigParser
来解析所有元素。 .INI
文件将是
Settings.INI
[settings-info]
schema = dist
resultsSchema = results
sourceName = hos
dbms = postgresql
user = hos
pw = hos
server = localhost/hos
然后,我们初始化一个解析器object,从文件中读取内容。我们可以有多个子标题(这里只有 'settings-info')并使用 [[
或 $
library(ConfigParser)
props <- ConfigParser$new()
props <- props$read("Settings.INI")$data
props[["settings-info"]]$schema
来自 Jupyter notebook
'Settings.INI' 文件
尝试以 .R
格式保存 Jupyter notebook 文件将不起作用,因为格式有点混乱(由于存在 { "cells" : [...."
之类的东西)。您可以通过打开来验证您在 Jupyter Notebook 中的 .R
文件。
但是,您可以使用 vim editor/R 工作室创建 .R
文件。这将使您能够按原样获得内容,而不会出现任何格式问题,例如 { "cells" : [...."
.
稍后从另一个 jupyter notebook,您可以 import/source 使用 vim editor/R studio 创建的 .R
文件。这为我解决了问题。
总而言之,不要使用 jupyter notebook 创建 .R
文件并使用另一个 jupyter notebook 文件获取它们。