On 11-04-2013, at 20:34, Fisher Dennis <fis...@plessthan.com> wrote:

> Colleagues
> 
> During the transition to R3.0.0 (OS X), one of the packages that I used -- 
> SASxport -- did not work until I used the "type=source" option in 
> install.packages.   
> 

See below. There is a binary version available.

> This led to an adventure:
>       1.  I downloaded the package source:            SASxport_1.2.4.tar.gz
>       2.  in the SASxport/R folder, I found all the functions that are part 
> of the package.
> I became interested in whether I could "source" these functions directly into 
> R and re-create the functionality of the package without 
> installing/"require"ing the package.  
> 
> This started with some success until I encountered one problem that I could 
> not overcome.  
> When I executed the function write.xport, I received the following error 
> message:
>       Error in .C("fill_file_header", cDate = xport.dateFMT(cDate), mDate = 
> xport.dateFMT(mDate), : 
>          C symbol name "fill_file_header" not in load table
> 
> This appears to be coming from the following line of code in write.xport:
>       out(xport.file.header( cDate = cDate, sasVer = sasVer, osType = osType))
> The problem appears to be in
>       xport.file.header
> for which the entire code is:
> 
> xport.file.header <-
>  function(cDate=Sys.time(), mDate=cDate, sasVer="7.00", osType="Unknown" )
>  {
>    .C("fill_file_header",
>       cDate = xport.dateFMT(cDate),           # Creation date
>       mDate = xport.dateFMT(mDate),           # Modification date
>       sasVer = toupper(as.character(sasVer)), # SAS version number
>       osType = as.character(osType) # Operating System (can include lowercase)
>       )
> 
>    .Call("getRawBuffer", PACKAGE="SASxport")
> 
>  }
> 
> Of note, I commented out the line:
>       .Call("getRawBuffer", PACKAGE="SASxport")
> and the same error occurred (I did not expect this is solve the problem).
> 
> I then looked in SASxport/src and found three files (which appear to be coded 
> in C):
>       init.c
>       writeSAS.c
>       writeSAS.h
> that refer to "fill_file_header"
> 
> I suspect that these files need to be accessed in some manner in order for 
> xport.file.header and other functions to work correctly.  
> The question is how do I access these files:
>       Do I "source" them in some manner?  
>       Put them in a particular location where they are sourced automatically? 
>  
>       I tried dyn.load but that does not appear to be the correct approach.
> 

These files are part of the package; packages have a strict organization of 
files.  The files you are referring to are C files and need to be compiled.
And that implies you will need to get hold of the appropriate compiler tools.


> Any help would be greatly appreciated.
> 

The exercise is quite futile.
You really need to read the Writing R Extensions manual.

There is a binary version of this package available on CRAN, which you can 
install using R.app.
So you don't need to do what you are doing.

Berend

______________________________________________
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.

Reply via email to