[R] split character line into rows

David Winsemius dwinsemius at comcast.net
Mon Dec 17 21:15:19 CET 2012


On Dec 17, 2012, at 4:04 AM, Simonas Kecorius wrote:

> Hey R users,
> 
> suppose we have data:
> 
txt <- readLines(textConnection("[1] 2010.12.26 00:00:52    688,88          11,69     43,00
 [2] 11,69     43,00
 [3] 11,69     43,00
 [4] 11,69     43,00
 [5] 11,69     43,00
 [6] 11,69     43,00
 [7] 11,69     43,00
 [8] 11,69     43,00
 [9] 11,69     43,00
[10] 11,69     43,00
[11] 11,69     43,00
[12] 11,69     43,00
[13] 11,69     43,00
[14] 11,69     43,00
[15] 11,69     43,00
[16] 11,69     43,00
[17] 11,69     43,00
[18] 11,69     43,00
[19] 11,69     43,00
[20] 11,69     43,00
[21] 11,69     43,00
[22] 11,69     43,00
[23] 11,69     43,00
[24] 11,69     43,00
[25] 11,69     43,00
[26] 11,69     43,00
[27] 11,69     43,00
[28] 11,69     43,00
[29] 11,69     43,00
[30] 11,69     43,00
[31] 11,69     43,00
[32] 11,69     43,00
[33] 11,69     43,00
[34] 11,69     43,00
[35] 11,69     43,00
[36] 11,69     43,00
[37] 11,69     43,00
[38] 11,69     43,00
[39] 11,69     43,00
[40] 11,69     43,00
[41] 11,69     43,00
[42] 11,69     43,00
[43] 11,69     43,00
[44] 11,69     43,00
[45] 11,69     43,00
[46] 11,69     43,00
[47] 11,69     43,00
[48] 11,69     43,00
[49] 11,69     43,00
[50] 11,69     43,00
[51] 11,69     43,00
[52] 11,69     43,00
[53] 11,69     43,00
[54] 11,69     43,00
[55] 11,69     43,00
[56] 11,69     43,00
[57] 11,69     43,00
[58] 11,69     43,00
[59] 11,69     43,00
[60] 11,69     43,00
[61] 2010.12.26 00:01:52    696,19          11,69     43,00
[62] 11,69     43,00
[63] 11,69     43,00
[64] 11,69     43,00
[65] 11,69     43,00
[66] 11,69     43,00"))

txt <- sub("\\[.+\\]","", txt)
read.table(text=txt[ grepl("[[:digit:]]{4}\\.", txt) ] )
          V1       V2     V3    V4    V5
1 2010.12.26 00:00:52 688,88 11,69 43,00
2 2010.12.26 00:01:52 696,19 11,69 43,00

Since you seemed to be using commas for decimal points I thought search for "NNNN." as a pattern might be sufficient, but you could extend that to a full date matching pattern if needed.


> ..................................... etc.
> 
> Is there a way to split data into date column, V2, V3 and V4 columns and
> erase those lines without date, so that data would look like that:
> 
> date                             V2       V3       V4
> 2010.12.26 00:01:52     555     11.67     44
> 2010.12.26 00:02:52     566     11.67     44
> 
> etc.
> 
> Thanks a lot!
> 
> 
> -- 
> Simonas Kecorius
> **
> 
> 	[[alternative HTML version deleted]]

Please read the Posting Guide and learn to post in plain text.


David Winsemius
Alameda, CA, USA




More information about the R-help mailing list