通过R的网状在python中写一个lambda函数

时间:2017-03-17 16:21:02

标签: r reticulate

我正在尝试编写一个简单的python函数,比如在列中的每个项目中添加5,但是我无法在R环境中定义python函数。是否可以在此处定义Python函数?

library(magrittr)
library(dplyr)
library(reticulate)

os <- import('os')
pd <- import('pandas', convert = F)
np <- import('numpy', convert = F)

a <- pd$Series(data = c(1, 2, 3))

b <- pd$DataFrame(list(a = c(10,20,30),
                       b = c(20, 30, 10)))

c <- pd$DataFrame(list(a = c(10,20,30),
                       c = c(40, 50, 60)))$merge(b)

c$cumsum()

plus_5 <- function(x) x + 5

c$apply(func = plus_5(b$a))

1 个答案:

答案 0 :(得分:0)

您可以在R中定义Python函数并将其调用如下:

library(reticulate)
util <- py_run_string("
def f1(a, b=3):
  return a + b
")
util$f1(1)

然后,您可以在c$apply()中使用它。希望这可以帮助。