2017-09-27 16 views
0

データフレーム(jsonliteを使用)からエクスポートする必要があります。 1つのこと以外はすべてOKです。私はこのような細胞内の文字列の列を持っている:データフレームのjson配列への分割文字列をR

"one,two,three" 

だから後:

sink("out.json") 
cat(toJSON(DF, pretty = TRUE)) 
sink() 

JSONに見える:私が試した

{..."data" : ["one","two","three"]...} 

{..."data" : "one,two,three"...} 

を私は配列をしたいですセルを上書きしてセルの値を置き換えるstrsplit jsonが、それは動作していません。

strsplit: 
================== 
Warning message: 
In `[<-.data.frame`(`*tmp*`, 16, 5, value = list(c("one", : 
replacement element 1 has 3 rows to replace 1 rows 

strplit and toJSON for cell: 
================== 
[1] "[\"one\",\"two\",\"three\"]" 

誰かが私を助けることができますか?ありがとう!

答えて

0

文字ベクトルではなくリストになるように列を変更することができます。

library('jsonlite') 
library('tidyverse') 

df <- tribble(
    ~column1, ~data, 
    1,  'one,two,three', 
    2,  'four,five' 
) 

df <- df %>% 
    mutate(data = stringr::str_split(data, ',')) 

toJSON(df, pretty = T) 
# [ 
# { 
#  "a": 1, 
#  "data": ["one", "two", "three"] 
# }, 
# { 
#  "a": 2, 
#  "data": ["four", "five"] 
# } 
# ] 
+0

"tidyverse"(大きすぎるパッケージ)の "tribble"は分かりませんが、私はあなたのメッセージを理解しました。ありがとう。私のためにこれを行う: 'df $ data < - as.list(strsplit(df $ data、"、 "))' –