I have previously tried to use Hmisc's sas.get function, but I have had problems with it. I think I go with your last suggestion.
-J 2010/10/19 David Winsemius <dwinsem...@comcast.net>: > > On Oct 19, 2010, at 1:31 PM, johannes rara wrote: > >> Thanks David, >> >> Yes, my code really works (using the foreign package), but when >> handling a SAS file which contains > 500 000 rows and > 100 cols it is >> not really fun anymore. My intention was do some preliminary research >> from the data and the whole dataset was not needed. >> >> After all, I could not find a possibility to get limited amount of >> rows from a dataset when importing data to R. > > Which was why I suggested that you explore the possibilities offered by: > > -- Hmisc::sas.get with a suitable if= statement > > I seem to remember there is a SAS internal variable named something like _N_ > that is a "line number". Perhaps > > ... , if="_N_ <= 10", > > OR: > -- using SAS to output a smaller file. > > OR: > > --- adding a SAS line to the output returned within the read.ssd function. > > -- > David. > > >> -J >> >> 2010/10/19 David Winsemius <dwinsem...@comcast.net>: >>> >>> On Oct 19, 2010, at 6:47 AM, johannes rara wrote: >>> >>>> I'm trying to read SAS datasets on Windows: >>>> >>>> sashome <- "C:/Program Files/SAS/SAS 9.1" >>>> fold <- "C:/temp" >>>> g <- read.ssd(fold, "sasfile", sascmd = file.path(sashome, "sas.exe")) >>> >>> And this was successful? >>> >>>> >>>> How to get only e.g first ten rows into R? >>> >>> Presumably you also entered require(foreign) if you had success. Looking >>> at >>> the help page, we see no parameter that would effect such a result. So >>> just >>> type: >>> >>> read.ssd >>> >>> You see that this function's code is available and if you know SAS, you >>> should be able to insert the needed line that would limit the dataset >>> length >>> to only ten lines. I'm not being coy. I would probably had further >>> suggestions 20 years ago when I was using SAS. >>> >>> There is a function sas.get in package Hmisc that offers more extensive >>> control, but it is not clear to me on looking at the parameters whether >>> your >>> particular request would be easily accommodated. The ifs= parameter would >>> appear to be the most promising candidate to me. It appears that these >>> file >>> formats are accepted: >>> sasds.suffix <- c("sd2", "sd7", "ssd01", "ssd02", "ssd03", >>> "ssd04", "sas7bdat") >>> >>> >>> Also, since the use of read.ssd implies that you have a working copy of >>> SAS, >>> then another option is simply exporting a file in the format of your >>> choice? >>> The SAS XPT format seems to be well handled by external programs. >>> >>> >>> -- >>> David. >>>> >>>> -J >>>> >>>> ______________________________________________ >>>> 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. >>> >>> David Winsemius, MD >>> West Hartford, CT >>> >>> > > David Winsemius, MD > West Hartford, CT > > ______________________________________________ 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.