如何将数据帧或矩阵转换为R中的Javascript数组?

时间:2016-06-16 14:12:01

标签: javascript arrays r dataframe

假设我有一个数据框,如:

 df = data.frame(a=c(1,2,3),b=c(40,50,60),c=c(100,200,300))

如何将其转换为包含Javascript数组的字符串,如:

 [[1, 2, 3], [40, 50, 60], [100, 200, 300]]

4 个答案:

答案 0 :(得分:1)

没有正则表达式:

paste0("var myarray = [",paste0("[", apply(df, 2, function(x) paste0(x,"",collapse = ", ")),"]",collapse=", "),"];")
#[1] "var myarray = [[1, 2, 3], [40, 50, 60], [100, 200, 300]];"

答案 1 :(得分:0)

你可以这样做:

jsstring = paste("var myarray = [",
    gsub('\\(','[',
         gsub('\\)',']',
              gsub('c','',toString(df)))), "];")

答案 2 :(得分:0)

//first convert dataframe to string (I have no IDEA)
var myString = "a=c(1,2,3),b=c(40,50,60),c=c(100,200,300)";

var newString = myString.replace(new RegExp("\\(", "g") ,"~~~").replace(new RegExp("\\)", "g"),"~~~" );

var result = newString.split('~~~').filter(function(num, index){ if( index % 2 !== 0 ) return num;}).map(function(item) { var arr = []; arr.push(item); return arr;})


 console.log(JSON.stringify(result));

答案 3 :(得分:0)

您可以使用jsonlite包。 只需2行代码。

library(jsonlite)

toJSON(df,dataframe = "values")

我认为这应该有用。