0

我有表格中的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 中尝试读取上述数据,但我无法如上所述分离列。

我该怎么做??

4

2 回答 2

0

您可以尝试阅读它,read.fwf它允许您指定列宽。

df <- read.fwf("youcsvfile.csv", widths=c(3,13,13),skip = 2)
colnames(df) <- c("Session ID","Source IP","Destination IP")
于 2013-10-28T07:45:56.917 回答
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))
于 2013-10-28T07:49:15.573 回答