假设我有一个数据框,如:
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]]
答案 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")
我认为这应该有用。