Dear Mac R folks,

I am not sure if this is a Mac specific problem or not, but it certainly does not work on a Mac

Consider the data set

12345
23456
34567
45678
56789

copy this to the clipboard and then attempt to read it back in using the read.fwf function

x <- read.fwf(file=pipe("pbpaste"),width=rep(1,5),header=FALSE)

The error is
Error in readLines(file, n = thisblock) : 'con' is not a connection
Error in UseMethod("close") :
  no applicable method for 'close' applied to an object of class "NULL"

But if we try

y <- read.table(file=pipe("pbpaste"),header=FALSE)

That works (but of course does not separate the variables.


The help file for read.fwf   says

file: the name of the file which the data are to be read from.

Alternatively, file can be a connection, which will be opened if necessary, and if so closed at the end of the function call.

read.table says the same thing about file (but is a bit more wordy).

##


The problem seems to be in the lines 22 to 29 of read.fwf

  if (is.character(file)) {
        file <- file(file, "r")
        on.exit(close(file), add = TRUE)
    }
    else if (!isOpen(file)) {
        file <- open(file, "r")
        on.exit(close(file), add = TRUE)
    }

If we replace those lines with lines 10-21 of read.table then read.fwf works as expected and will read from pipe("pbpaste")

    if (is.character(file)) {
        file <- if (nzchar(fileEncoding))
            file(file, "rt", encoding = fileEncoding)
        else file(file, "rt")
        on.exit(close(file))
    }
    if (!inherits(file, "connection"))
        stop("'file' must be a character string or connection")
    if (!isOpen(file, "rt")) {
        open(file, "rt")
        on.exit(close(file))
    }


I discovered this while trying to extend my read.clipboard function to handle fixed format input.
The problem seems to happen on 2.10.1 as well as 2.11.0
R version 2.10.1 Patched (2009-12-16 r50763)
i386-apple-darwin9.8.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] psych_1.0-86

loaded via a namespace (and not attached):
[1] tools_2.10.1


R version 2.11.0 Under development (unstable) (2010-02-12 r51122)
i386-apple-darwin9.8.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] psych_1.0-86


Best wishes,

Bill

--
William Revelle         http://personality-project.org/revelle.html
Professor                       http://personality-project.org
Department of Psychology             http://www.wcas.northwestern.edu/psych/
Northwestern University http://www.northwestern.edu/
Use R for psychology                       http://personality-project.org/r
It is 6 minutes to midnight     http://www.thebulletin.org

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to