数据格式和上传问题
data format and uploading issue
这是我必须分析的数据片段:
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"
将是列 headers。每行包含大约相同数量的变量,但有些行不包含其他行包含的变量。对于这些情况,我希望有 "NULL"。例如:在上面数据的第二行中,在 dort
列下,我想说 "NULL"
希望对您有所帮助!
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
这是我必须分析的数据片段:
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"
将是列 headers。每行包含大约相同数量的变量,但有些行不包含其他行包含的变量。对于这些情况,我希望有 "NULL"。例如:在上面数据的第二行中,在 dort
列下,我想说 "NULL"
希望对您有所帮助!
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