在rpy2中,相当于说:

dataf <- data.frame(a=c(1,2,3), b=c(4,5,6))
dataf$a <- dataf$a + 1


由于dataframe.rx2[[.dataframe的rpy2等效项,所以我认为答案应该是:

 d = {'a': robjects.IntVector((1,2,3)), 'b': robjects.IntVector((4,5,6))}
 dataf = robjects.DataFrame(d)
 dataf.rx2["a"] = dataf.rx2("a").ro + 1


但这会产生以下错误:

 RRuntimeError: Error in `[[<-.data.frame`(list(a = 1:3, b = 4:6), "a", 2:4) :
    argument "value" is missing, with no default


我也尝试过:

dataf.rx["a"] = dataf.rx("a").ro + 1
dataf[dataf.index("a")] = dataf.rx2("a").ro + 1


没有运气

最佳答案

这应该工作:

i = dataf.colnames.index('a')
dataf[i] = dataf[i].ro + 1

08-19 09:56