Hi

If I use your code:
grep ("ACC", input, FALSE, FALSE, TRUE)
#[1] 
"ACC,1.1,2.2,3.3,4.4\nACC,2.2,3,4,5\nADN,3.3,4,5\nACC,4.4,5.5,6.6,7.7\nADN,5.5,6,7\n"
Seems like you forgot one line of code: with ?strsplit()

vec1<- grep("ACC",strsplit(input,"\n")[[1]],FALSE,FALSE,TRUE)
vec1
#[1] "ACC,1.1,2.2,3.3,4.4" "ACC,2.2,3,4,5"       "ACC,4.4,5.5,6.6,7.7"

 vec2<- grep("ADN",strsplit(input,"\n")[[1]],FALSE,FALSE,TRUE)
vec2
#[1] "ADN,3.3,4,5" "ADN,5.5,6,7"
length(vec2)
#[1] 2


A.K.



I have the following string input: 

input <- 
"ACC,1.1,2.2,3.3,4.4\nACC,2.2,3,4,5\nADN,3.3,4,5\nACC,4.4,5.5,6.6,7.7\nADN,5.5,6,7\n"
 

Note that \n is a real line feed in the data and the numbers are
 all made up and might be other values. The key is that the first number
 is a float, the ACC packets are all floats and the ADN the first value 
is a float and the rest are ints. 

I want to turn this string into a vector of packets. I tired 
using grep and regexpr without luck. I would also like to filter the 
packets so that I can get a vector of just the ACC packets and another 
vector of just the ADN packets. 

When I tried this: 

grep ("ACC", input, FALSE, FALSE, TRUE) 

What I ended up with was: 

[1] "ACC,1.1,2.2,3.3,4.4"            "ACC,2.2,3,4,5"         
"ADN,3.3,4,5"                    "ACC,4.4,5.5,6.6,7.7"           
"ADN,5.5,6,7" 

What I wanted was: 

[1] "ACC,1.1,2.2,3.3,4.4" 
[2] "ACC,2.2,3,4,5" 
[3] "ACC,4.4,5.5,6.6,7.7" 

Then I wanted to put in grep ("ADN", input, FALSE, FALSE, TRUE) and get out: 

[1] "ADN,3.3,4,5" 
[2] "ADN,5.5,6,7" 

Can someone help me figure this out?

______________________________________________
R-help@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.

Reply via email to