Hi,
I'm trying to use pipes in R. By now, I could launch the linux command
"wc"
(to count words from a text), but
I don't know how to capture the results, say in a vector of chars...
Here is the R code I'm trying:
:> f <- pipe("wc", open="w")
:> writeLines(c("uno dos tres", "cuatro cinco",
"seis"), f)
:> close(f)
: 3 6 31
The result is just displayed but I couldn't put the result into a R
variable.
Do you have any comments on this?
Thanks,
-- Sergio.
[[alternative HTML version deleted]]
Hi,
If you want to just count the words in R, try this:
vec1<-c("uno dos tres", "cuatro cinco", "seis")
#get individual word count within quotes
res1<-unlist(lapply(strsplit(vec1, " "),length))
res1
#[1] 3 2 1
#get whole word count
length(unlist(strsplit(vec1, " ")))
#[1] 6
----- Original Message -----
From: Julio Sergio Santana <juliosergio at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Wednesday, September 12, 2012 1:40 PM
Subject: [R] Trying to use pipes in R
Hi,
I'm trying to use pipes in R. By now, I could launch the linux command
"wc"
(to count words from a text), but
I don't know how to capture the results, say in a vector of chars...
Here is the R code I'm trying:
:> f <- pipe("wc", open="w")
:> writeLines(c("uno dos tres", "cuatro cinco",
"seis"), f)
:> close(f)
:? ? 3? ? ? 6? ? ? 31
The result is just displayed but I couldn't put the result into a R
variable.
Do you have any comments on this?
Thanks,
-- Sergio.
??? [[alternative HTML version deleted]]
______________________________________________
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.
On 12/09/2012 1:40 PM, Julio Sergio Santana wrote:> Hi, > I'm trying to use pipes in R. By now, I could launch the linux command "wc" > (to count words from a text), but > I don't know how to capture the results, say in a vector of chars... > Here is the R code I'm trying: > > :> f <- pipe("wc", open="w") > :> writeLines(c("uno dos tres", "cuatro cinco", "seis"), f) > :> close(f) > : 3 6 31 > > The result is just displayed but I couldn't put the result into a R > variable. > Do you have any comments on this?The examples on the page don't show R both giving input and reading output from the same pipe. I don't think you can set it up that way; R is only one process. The usual approach is what is shown there: write to a temporary file, then pipe the results of a command that works on that file back into R. I guess you could also pipe some data into a command that writes a file, and then read that. Duncan Murdoch
On Wed, Sep 12, 2012 at 12:40:54PM -0500, Julio Sergio Santana wrote:> Hi, > I'm trying to use pipes in R. By now, I could launch the linux command "wc" > (to count words from a text), but > I don't know how to capture the results, say in a vector of chars... > Here is the R code I'm trying: > > :> f <- pipe("wc", open="w") > :> writeLines(c("uno dos tres", "cuatro cinco", "seis"), f) > :> close(f) > : 3 6 31 > > The result is just displayed but I couldn't put the result into a R > variable. > Do you have any comments on this?Hi. Try the following. writeLines(c("uno dos tres", "cuatro cinco", "seis"), "some_file.txt") out <- system("wc some_file.txt", intern=TRUE) out [1] " 3 6 31 some_file.txt" Here, out is a character variable. Hope this helps. Petr Savicky.
Thanks you all,
With your recomendations I built my solution as follows:
:> writeLines(c("uno dos tres", "cuatro cinco",
"seis"), "tempfile.txt")
:> o <- pipe("wc < tempfile.txt", open="r")
:> readLines(o)
:[1] " 3 6 31"
best regards,
--Sergio.