数据格式和上传问题

时间:2017-09-09 22:53:54

标签: r delimiter dataformat

以下是我需要分析的数据片段:

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,但这并没有得到我所需要的东西:

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

理想情况下,"id", "sys", "sub", "severity", "dort""name"将成为列标题。每行包含大约相同数量的变量,但某些行不包含其他行所执行的变量。对于那些实例,我希望有“NULL”。例如:在上面数据的第二行中,在dort列下我希望它说“NULL”

1 个答案:

答案 0 :(得分: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