JMP 找到 R你好呀,
这里是一个新手问题。 我喜欢使用 JMP,并且在 R 中有一些我想导入到 JMP 的数据。 我正在尝试使用 JMP-to-R 接口(第一次在 JMP 中编写脚本),但我真的不知道自己在做什么。 但是,当我运行以下 JSL 脚本时,什么也没有发生;
test1 = Get R(test1);
我敢肯定还有很多事情要做,但我真的不知道如何进行。 如果您对我如何开始将数据从 R 提取到 JMP 有一些建议,我很想听听! 我在刚刚升级到 Windows 10 的 PC 上,所以我在想(但不知道是不是这样)是 JMP 找不到我的 R 安装位置。 同样,这是我第一次尝试 JSL 脚本,所以这可能是一个初学者的问题,但我不确定我在这里做什么。 谢谢!
回复:JMP 找到 R我就这个话题与 JMP Support 进行了交谈;不幸的是,用户无法按照我询问的方式将数据帧从 R 拉到 JMP 中。 来自 JMP 支持:
JMP does not interact with R in this manner. When JMP initializes R, it starts a new session (environment). That session is completely isolated from R meaning, if you were to start a new R session, JMP would not recognize any of the environment variables (global or local). This is why your R data frame is unknown to JMP.
有几种方法可以将数据从 R 拉入 JMP,但它们基本上都要求通过 JMP 脚本对话框运行脚本来“创建”R 中的数据框。 我一直在做选项 #3(让 R 将数据帧写入 csv 文件,然后用 JMP 打开 csv 文件),但选项 #2 很有趣。 当我尝试时,不幸的是,我的计算机内存不足,因此对于超大数据帧来说,这可能不是一个可行的选择。 这些是来自 JMP 支持的建议:
1. Use JMP's R Submit () to create the data frame. The use R Submit () and R Get () to bring the data frame into JMP. This is probably the mostly commonly used approach.
2. Use JMP's R Submit () to load the data frame via R and bring it back to JMP.
3. Lastly, you can also save the data frame from R as a CSV and open it in JMP using JSL's open function.
回复:JMP 找到 R请在此处发布他们的答案。 新领域!
回复:JMP 找到 R感谢您尝试这个,马克! 我会联系技术支持,看看他们对此有何看法。
回复:JMP 找到 R我只是尝试使用连接,但效果并没有好转。
我以前从未遇到过这种情况。 我总是将我需要的内容发送到 R,运行 R 脚本,返回我想要的内容,然后继续使用 JMP。
我不相信这是不可能的。 我建议您联系 JMP 技术支持 (support@jmp.com) 并向他们寻求帮助。
回复:JMP 找到 R嗯,也许我想做的在这种情况下不起作用?
我有一个已经在 R 全球环境中的 data.frame(我/其他人曾在 R 中处理过它),我想将它拉入 JMP。 但是,根据我对我们对话的理解,我需要在 JMP 脚本对话框中运行整个 R 脚本,以便 JMP 能够“看到”data.frame。 这个对吗?
或者也许我在这里错过了另一个步骤。 如果我已经在 R 中创建了一个 data.frame(现在它位于 R 的“全局环境”中),那么 JMP 仍然看不到它。 但是 JMP 可以看到它吗? 在 R 中,我运行了以下命令:
test1 <- data.frame("x"=c(1,2,3,4),"y"=c(5,6,7,8))所以现在“test1”在 R 全局环境中。 但是由于某种原因,JMP 仍然无法“看到”它? 也许我可以做一些事情来使这个 data.frame 对 JMP 可见,而不必通过 JMP 脚本对话框重新运行 R 脚本?
回复:JMP 找到 R你如何在 R 中创建数据框? 当 JMP 连接到 R 时,您为什么认为它存在于 R 中?
回复:JMP 找到 R是的,我认为您必须提交 R 代码才能在与 JMP 连接期间使数据框在会话中处于活动状态。 此示例“从头开始”创建一个数据框并将其存储在变量 d 中。 R Get() 调用可以请求它,因为它现在存在于 R 工作区中。 例如,在其他情况下,您也可能会打开一个文件或获取一个数据框作为建模的结果。 除非您提交代码以使其成为一种或另一种方式,否则数据框在 R 中不存在。
Names Default to Here( 1 );
R Init();
R Submit(
"L3 <- LETTERS[1:3]
d <- data.frame(cbind(x=1, y=1:15), Group=sample(L3, 15, repl=TRUE))"
);
dt = R Get( d ) << New Data View;
R Term();回复:JMP 找到 R嗯,也许我在 R 中的 data.frame 不适用于 JMP 访问? 不过,我不确定为什么。 当我从 JMP 运行示例脚本时,它能够访问数据框。
R Init();
R Submit(
"
L3 <- LETTERS[1:3]
d <- data.frame(cbind(x=1, y=1:15), Group=sample(L3, 15, repl=TRUE))
"
);
R Get( d ) << NewDataView;
R Term();
但是,当我在 R 中创建数据框时,JMP 似乎无法访问它。 我的 R 脚本如下:
test1 <- data.frame("x"=c(1,2,3,4),"y"=c(5,6,7,8))
生成的 data.frame 存储在 R“全局环境”中,但是当我尝试使用 R Get(test1) 访问它时,它似乎无法识别这一点。
回复:JMP 找到 R您可能需要运行 R 脚本以确保在调用 R Get() 时数据框可用。 R Get() 的示例代码打开一个名为 Big Class 的 JMP 数据表,将其发送给 R,然后将其返回给 JMP。 将其发送到 R 使其成为活动数据帧。 你在做什么来使数据框在 R 中处于活动状态?
这是另一个可能有帮助的示例,其中 R 脚本从 JMP 运行。
Names Default To Here( 1 );
R Init();
R Submit(
"x <- rnorm(1000)
hx <- hist(x, breaks=100, plot=FALSE)
plot(hx, col=ifelse(abs(hx$breaks) < 1.669, 4, 2))
x <- rnorm (100)
y <- x**2 + rnorm (100)
summary(y)"
);
Wait( 3 );
R Term();
您可能需要类似此示例的内容来确保 R 数据框可用。
回复:JMP 找到 R以下是帮助 > 脚本索引中的一个简短示例,可能有助于您入门:
Names Default to Here( 1 );
R Init();
x1 = [1, 2, 3];
R Send( x1 );
x2 = R Get( x1 );
Show( x1, x2 );
R Term();
我可能会让你走错方向R 连接() .
回复:JMP 找到 R你在名为的变量中存储了什么测试1 ?
回复:JMP 找到 R谢谢你的建议,马克和吉姆。 我再次查看了 Scripting Guide,不幸的是,我仍然感到困惑。 我运行了他们在脚本指南中提供的“测试您的设置”脚本,它似乎工作正常(所以我担心 JMP 无法找到 R 似乎是没有根据的)。 但是,当我尝试运行以下脚本以从 R 环境(我称之为“test1”)中提取测试数据帧时......
R Connect();
test1 = R Get(test1);
我从日志中得到以下输出:
TKIntRJMP.R 版本 5.05
警告:eval(expr, p) 中的错误:找不到对象“test1”
未知
我不确定如何解决这个问题。 我无法在脚本指南中找到解决此问题的方法。 也许我对此的理解是不正确的? 我的理解是命令 R Get() 将从 R 中提取一些对象并在 JMP 中返回它。 因此,如果我在 R 环境中创建了一个数据框,它将作为数据表拉入 JMP。
谢谢你的建议!
回复:JMP 找到 R我同意吉姆的观点。 文档中有很多信息可以为您节省很多困惑和浪费的时间。 许多示例为您自己的脚本提供了一个很好的起点。
也就是说,将 R 与 JMP 结合使用并不困难。 您必须先致电R 连接()启动 R 并建立连接的函数。 其他 R 函数,例如R 获取() ,然后通过此连接工作。
回复:JMP 找到 R您应该做的第一件事是阅读脚本指南部分中的“使用 R”部分,扩展 JMP
帮助==>书籍==>脚本指南