[R] How to read only ten rows from a SAS dataset (read.ssd)?

johannes rara johannesraja at gmail.com
Tue Oct 19 19:46:32 CEST 2010


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 <dwinsemius at 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 <dwinsemius at 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 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.
>>>
>>> David Winsemius, MD
>>> West Hartford, CT
>>>
>>>
>
> David Winsemius, MD
> West Hartford, CT
>
>



More information about the R-help mailing list