如何从元组列表中创建2个data.frame列?

时间:2017-08-25 10:51:54

标签: r dataframe tuples

我有一个元组列表作为我的Python程序的输出,并希望将R用于某些数据图。

所以从[(1,2),(3,4),(0,9)]的python列表中,我想来一个R data.frame

x y
1 2
3 4
0 9

我似乎无法找到一种简单的方法来做到这一点。

2 个答案:

答案 0 :(得分: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)])

答案 1 :(得分: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