假設我有這樣一個數據幀:如何將數據框或矩陣轉換爲R中的Javascript數組?
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]]
假設我有這樣一個數據幀:如何將數據框或矩陣轉換爲R中的Javascript數組?
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]]
你可以這樣做:
jsstring = paste("var myarray = [",
gsub('\\(','[',
gsub('\\)',']',
gsub('c','',toString(df)))), "];")
無正則表達式:
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]];"
//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));
可以使用jsonlite包。 只需2行代碼。
library(jsonlite)
toJSON(df,dataframe = "values")
我認爲這應該工作。