[R] conditional output of string to file n times...
Eric Berger
er|cjberger @end|ng |rom gm@||@com
Wed Jul 7 09:53:53 CEST 2021
Hi Evan,
I assume you know how to get the data into a data frame (e.g. via read.csv).
Here I will create the example data explicitly, creating a data frame x.
x <- data.frame( label=c("ABC","DDG","ABB"), count=c(3,5,2) )
Then create a character vector with the data as you want it.
y <- unlist(sapply( 1:nrow(x), function(i) rep( x$label[i], x$count[i] ) ))
Finally print it to a file, say 'myfile' (to get one element per line I did
a bit of a trick).
write.table(x=t(t(y)),file="myfile",row.names=FALSE,col.names=FALSE,quote=FALSE)
HTH,
Eric
On Wed, Jul 7, 2021 at 10:15 AM Evan Cooch <evan.cooch using gmail.com> wrote:
> Suppose I have a file with the the following structure - call the two
> space-separated fields 'label' and 'count':
>
> ABC 3
> DDG 5
> ABB 2
>
>
> What I need to do is parse each line of the file, and then depending on
> the value of count, write out the value of 'label' to a new file, but
> 'count' times. In other words, take the preceding, and output
>
> ABC
> ABC
> ABC
> DDG
> DDG
> DDG
> DDG
> DDG
> ABB
> ABB
>
> I was wondering if there was an elegant/simple way to do this? I can do
> this relatively easily in perl, or awk, but am stumped by getting a bit
> of R code to accomplish the same thing.
>
> Many thanks in advance...
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list