我正在尝试使用Windows计算机SSH到Mac服务器,运行一个程序,然后将输出数据传输回我的Windows。我已经能够使用Putty成功地手动完成此操作。
现在,我正在尝试使用Plink自动化这个过程。我已经将Plink添加到我的Windows路径中,因此,如果我打开cmd并键入命令,我就可以成功登录并将命令传递给服务器:

但是,我想使用R将其自动化,以简化数据分析过程。根据一些搜索,互联网似乎认为shell命令最适合这项任务。不幸的是,它似乎没有找到Plink,尽管通过shell向终端传递命令是有效的:

如果我尝试相同的操作,但是使用shell手动设置Plink的路径,不会返回任何输出,但命令似乎不会运行(例如,没有创建TESTFOLDER ):

有人知道为什么当我尝试从R调用Plink时,它不可用吗?或者,如果有关于如何在R中实现这一点的其他想法,也将不胜感激。
提前谢谢你,-sam
发布于 2015-05-21 03:34:06
我来这里是为了寻找这个问题的答案,所以我只能提供这么多,但我想我已经设法使用shell函数在R中实现了PLINK的初始步骤……
这是对我有效的方法:
R:中的NOT
然后,在R中::
## Set your working directory as the path to the PLINK program files: ##
setwd("C:/Program Files/plink-1.07-dos")
## Use shell to check that you are now in the right directory: ##
shell("cd")
## At this point, the command "plink" should be at least be recognized
# (though you may get a different error)
shell("plink")
## Open the PLINK example files ##
# FYI mine are in "C:/PLINK/", so replace that accordingly...
shell("plink --file C:\\PLINK\\hapmap1")
## Make a binary PED file ##
# (provide the full path, not just the file name)
shell("plink --file C:\\PLINK\\hapmap1 --make-bed --out C:\\PLINK\\hapmap1")..。诸若此类。
这就是我到目前为止所做的一切。但如果幸运的话,镜像这些代码行的结构和通用格式应该允许您在R中使用PLINK做您喜欢的事情。
希望这能有所帮助!
PS。当您运行上面的代码行时,PLINK输出应该只会在R控制台中打印出来。
万事如意,
- CC.
发布于 2015-05-21 07:14:02
我看到了Caitlin的回复,这提醒了我,我从来没有更新过我的解决方案。我的方法是一种变通的方法,而不是解决我的特定问题,但它可能对其他人有用。
将Plink添加到我的路径后,我在Windows中创建了一个包含所有Plink命令的批处理脚本,然后使用命令shell从R调用批处理脚本:
所以,在R中:
shell('BatchScript.bat')批处理脚本包含了我想在Plink中使用的所有命令:
:: transfer file to phosphorus
pscp C:\Users\Sam\...\file zipper@144.**.**.208:/home/zipper/
:: open connection to Dolphin using plink
plink -ssh zipper@144.**.**.208 Batch_Script_With_Remote_Machine_Commands.bat
:: transfer output back to local machine
pscp zipper@144.**.**.208:/home/zipper/output/ C:\Users\Sam\..\output\希望这对某些人有帮助!
https://stackoverflow.com/questions/27966399
复制相似问题