2017-09-09 5 views
1

は、私が分析しなければならないデータの抜粋です:これは明白な疑問ですが、データの種類これで、どのように私は得ることができる場合データ形式やアップロードの問題

2014 log[1]: id="1" sys="Sec" sub="fill" severity="inf" dort="30" 2014 log[2]: id="2" sys="Sec" sub="fill" severity="inf" name="dropped"

はすみません分析するためにそれをCSV形式に変換しますか?これまでのところ私は、区切り文字として空白文字を指定することにより、Rを使用してみましたが、それは私が必要なものを私を取得できませんでした:理想的には、"id", "sys", "sub", "severity", "dort"

table1<-read.table('data.txt', sep="", fill=TRUE, header = FALSE)

、および"name"は、列のヘッダーになります。各行にはほぼ同じ数の変数が含まれていますが、一部の行には他の行が行う変数は含まれていません。そのような場合、私は "NULL"があることを望みます。例:上記のデータの2行目で、dortの列の下に「NULL」と言いたいのですが

+0

あなたはサンプルデータの1行以上のものを提供することはできますか?各行に 'id'、' sys'などのタグがありますか? – Drj

+0

@Drjはわかりやすく編集しました – cheesetaco

+0

あなたの例では、2行目で 'dort'は表示されません。サンプルデータを提供できますか? –

答えて

0

id="1" sys="Sec" sub="fill" severity="inf" dort="30" 
id="2" sys="Sec" sub="fill" severity="inf" name="dropped" 

のはtest.txtは、上記のデータを言及したことを考えてみましょうその後、

library(rjson) 
library(plyr) 

#prepare json data 
txt_file <- readLines("test.txt") 
json_file <- lapply(txt_file, function(x) paste0('{"', gsub(',', ',"',gsub("=",'":',gsub('"\\s+', '",', gsub("^\\s+|\\s+$","",x)))), '}')) 
json_file <- paste0("[", paste(json_file, collapse=","), "]") 

#read json data 
json_data <- fromJSON(json_file) 

#convert it to dataframe 
df <- rbind.fill(lapply(json_data,function(y){as.data.frame(t(y),stringsAsFactors=FALSE)})) 
df[df=='NULL'] <- NA 
df 

出力は次のとおりです。

id sys sub severity dort name 
1 1 Sec fill  inf 30  NA 
2 2 Sec fill  inf NA dropped 
+0

@cheesetacoようこそ!あなたはあなたの質問に答えるならば、満足のいく答えを正しい答えとしてマークし、将来類似の問題に直面する場合に他の人を助けるでしょう。ありがとう! – Prem

+0

ちょうどこれに着いた - しかし、ありがとう!あなたは救命救助者です、これは完璧に機能しました! – cheesetaco

+0

それは助けて嬉しい:) – Prem