[R] split character line into rows
arun
smartpink111 at yahoo.com
Mon Dec 17 21:34:47 CET 2012
Hi,
This could also work:
max(nchar(txt))
#[1] 58
res<-read.table(text=substr(txt[nchar(txt)>20],5,58),sep="",dec=",",header=FALSE,stringsAsFactors=FALSE)
res
# V1 V2 V3 V4 V5
#1 2010.12.26 00:00:52 688.88 11.69 43
#2 2010.12.26 00:01:52 696.19 11.69 43
A.K.
----- Original Message -----
From: David Winsemius <dwinsemius at comcast.net>
To: Simonas Kecorius <simolas2008 at gmail.com>
Cc: r-help at r-project.org
Sent: Monday, December 17, 2012 3:15 PM
Subject: Re: [R] split character line into rows
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
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list