小编Eff*_*gan的帖子

使用rpy2从python调用R脚本

我对rpy2以及R都很新.

我基本上有一个R脚本script.R,它包含rfunc(文件夹)等功能.它与我的python脚本位于同一目录中.我想从Python调用它,然后启动它的一个功能.我不需要这个R函数的任何输出.我知道它必须非常基础,但我找不到R脚本调用python代码的例子.我目前正在做什么,在Python中:

import rpy2.robjects as robjects

def pyFunction(folder):
    #do python stuff 
    r=robjects.r
    r[r.source("script.R")]
    r["rfunc(folder)"]
    #do python stuff

pyFunction(folder)
Run Code Online (Sandbox Code Playgroud)

我在源代码上遇到错误:

r[r.source("script.R")] File "/usr/lib/python2.7/dist-packages/rpy2/robjects/__init__.py", line 226, in __getitem__ res = _globalenv.get(item) TypeError: argument 1 must be string, not ListVector

我完全不明白我给它的参数是不是一个字符串,我想同样的问题将在下一行发生,文件夹是一个python字符串,而不是一个R thingie.

那么,我怎样才能正确调用我的脚本?

python r call rpy2

18
推荐指数
1
解决办法
2万
查看次数

Python - 确定井字游戏的赢家

我正在尝试编写一个代码来确定井字游戏的获胜者。(这是一个大学作业)

为此,我编写了以下函数:

这段代码只检查水平线,我没有添加其余的。我觉得这是需要一些硬编码的东西。

def iswinner(board, decorator):
    win = True
    for row in range(len(board)):
        for col in range(len(board)):
            if board[row][col] == decorator:
                win = True
            else:
                win = False
                break
Run Code Online (Sandbox Code Playgroud)

其中“board”是大小为 n^2 的二维数组,“decorator”是“X”或“O”值

我希望完成的是该函数循环遍历二维数组的行。然后循环遍历每一行中的值。如果该元素与“装饰器”匹配,则它继续并检查下一个,但如果不匹配,则它从第一个循环中断并转到下一行。它会这样做,直到在同一行中找到 n 个元素。然后它会给出一个布尔值 True 否则为 False。

代码似乎没有这样做,即使我检查了以下“板”,它也给了我“真”的输出

check_list = [['O', 'X', 'X'],
              ['O', 'X', 'O'],
              ['O', 'X', 'X']]
Run Code Online (Sandbox Code Playgroud)

非常感谢!

最好的,赛义德

python arrays loops boolean break

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×2

arrays ×1

boolean ×1

break ×1

call ×1

loops ×1

r ×1

rpy2 ×1