【问题标题】:PHP pass array to RscriptPHP将数组传递给Rscript
【发布时间】:2020-02-13 09:33:15
【问题描述】:

我有一个关于如何将 php 数组传递给 Rscript 的问题。 在我的项目中,我需要使用 php 调用 Rscript 来运行 R 代码。但是我想将 php 数组作为 Rscript 中的参数传递。但是当我这样做时。 php报错:数组到字符串的转换!。我不知道该怎么做。如果它可以成功传递参数。我仍然不知道如何读取R中的数组参数。有什么想法吗?提前致谢! 这是一个例子:

#php file
<?php
$ck=["WT1","WT2"];
$tr=["Al1","Al2"];
exec("Rscript getdata.R $ck $tr");

# getdata.R
args <- commandArgs(TRUE)
ck <- args[1]
tr <- args[2]
ckk <- lapply(strsplit(ck,','),as.character)
trr <- lapply(strsplit(tr,','),as.character)
a <- as.dataframe(a=ckk,b=trr)
write.csv(a,file="test.csv")

【问题讨论】:

    标签: php r rscript


    【解决方案1】:

    这似乎是将$tr$ck 转换为字符串的问题。由于缺乏 php 经验,我的经验基于其他语言和其他一些问题。

    从终端/cmd 执行时,参数都应该是字符串。按照答案here 中的示例,您可能会使用类似于(未经测试!)的东西

    $ck=["WT1","WT2"];
    $tr=["Al1","Al2"];
    exec('Rscript getdata.R "' . implode(",", $ck) . '" "' . implode(",", $tr) . '"');
    

    请注意,这会将输入作为 R 中的字符串返回,然后必须将其转换回向量。

    【讨论】:

      猜你喜欢
      • 2017-03-06
      • 2011-05-16
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多