[英]How to build a lapply-style function in R with Python code inside with package reticulate?
[英]How to lapply python function to r list using reticulate?
在帶有網狀的 R 塊中使用 Python 函數時出現意外輸出
蟒蛇塊:
def print_address(address):
py_address = r.address
print(py_address)
R塊:
address <- list("1 Main Street", "2 Hope Street")
lapply(address, py$print_address)
實際的:
[[1]] 空
[[2]] 空
預期的:
[[1]] [1] “1 大街”
[[2]] [1] 《希望街2號》
這有兩個部分:
1)python函數預計打印 . 但是沒有顯示python控制台的輸出。 這看起來像一個典型的沖洗問題,確實如此。 https://github.com/rstudio/rstudio/issues/3271因此,如果我們在 Python 中刷新標准輸出,則會打印地址。
import sys
def print_address(address):
py_address = address
print(py_address)
sys.stdout.flush()
2)我們的python函數不返回值。 我不太確定這是如何工作的,但在這種情況下,python 似乎向 R 返回一個null
。如果我們直接調用該函數,這似乎不是問題,但在lapply
,返回的 null 被添加到列表中並隱式被打印出來。 即使您在 python 中使用stdout.flush
這也會被打印出來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.