2017-08-25 95 views
0

我有一个元组列表,作为我的Python程序的输出,并希望将R用于某些数据图。如何从元组列表中创建2个data.frame列?

所以从[(1,2),(3,4),(0,9)] Python列表,我要来A R data.frame

x y 
1 2 
3 4 
0 9 

我只是不能似乎找到一种简单的方法来做到这一点。

+4

什么会是R脚本的输入吗?一个字符串?或者是什么? – m0nhawk

+0

目前我只是打印我的python列表到标准输出,所以一个字符串我管道到R可能,是的 – voiDnyx

+0

如何把它变成一个合适的表在Python中,然后存储为'羽毛“或CSV和读取到R? –

回答

0

如果输入一个字符串,你可以尝试:

x="[(1,2),(3,4),(0,9)]" 

x <- strsplit(gsub("\\[|\\(|\\)|\\]", "", x),",")[[1]] 

cbind.data.frame(x=x[c(TRUE,FALSE)],y=x[c(FALSE,TRUE)]) 
0

如果你想有一个数字输出,使用strsplit ...

inp <- "[(1,2),(3,4),(0,9)]" 
out <- gsub("(^\\[\\()|(\\)\\]$)", "", strsplit(inp, "\\)\\,\\(")[[1]]) 
out <- do.call(rbind, lapply(out, (function(el){ 
    as.numeric(strsplit(el, "\\,")[[1]]) 
}))) 
out 

结果是

[,1] [,2] 
[1,] 1 2 
[2,] 3 4 
[3,] 0 9