我的格式为
的excel数据 SessionIDSourceIPDestinationIP
206192.67.36.714182.79.86.214
206191.73.38.756182.89.86.214
通过在Excel中将文本应用于文档,我可以将数据分隔为
Session ID Source IP Destination IP
206 192.67.36.714 182.79.86.214
206 191.73.38.756 182.89.86.214
在R试图读取上面的数据,但我无法按上述方式单独列。
我该怎么办?
答案 0 :(得分:0)
您可以尝试使用read.fwf
来阅读它,以便您指定列宽。
df <- read.fwf("youcsvfile.csv", widths=c(3,13,13),skip = 2)
colnames(df) <- c("Session ID","Source IP","Destination IP")
答案 1 :(得分:0)
根据源数据的布局方式(IP编号中是否总是有3.2.2.3位数?),您可能希望使用正则表达式来分割数据:
# Load your data without the header line:
x=read.csv('mydata.txt', stringsAsFactors=FALSE, header=FALSE)
# set up regex to capture groups.
# (Being a bit conservative in case of three digits in middle values.)
rex='^(\\d{3})(.+\\.\\d{3})(\\d{3}\\..+)$'
# Extract data to get subset of each captured match
df <- data.frame(SessionID=gsub(rex,"\\1",x$V1), SourceIP=gsub(rex,"\\2",x$V1),DestinationIP=gsub(rex,"\\3",x$V1))