2013-11-15 23 views
2

我有一個問題,使用data.table作爲函數的參數。R數據表用法作爲參數包

如果我在腳本中定義函數,我在其中工作 - 請參閱fn_good。

如果我將函數(相同)定義爲一個包的一部分,我已經使它不能完全工作。看來列名不被識別。函數內的命令如'tables()'或x [1:5,1:2]可以正常工作。只是列名不能像fn_good一樣使用。

我的包中的其他功能工作正常。

任何想法?

千恩萬謝

R.version 3.0.0

cd<-data.table(PY=1992:2001,DV=1:10,IN=2000) 

fn_good<-function(x) {x[1:5, list(PY, DV)]} 

fn_good(x=cd) 
    PY DV 
1: 1992 1 
2: 1993 2 
3: 1994 3 
4: 1995 4 
5: 1996 5 


fn_in_Package_Bad 
function (x) 
{ 
    x[1:5, list(PY, DV)] #identical to above 
} 
<environment: namespace:RBasicChainLadder> 

fn_in_Package_Bad(x=cd) 
Error in `[.data.frame`(x, i, j) : object 'PY' not found 
+2

你能向我們展示你的'Description'文件嗎?你的包應該是'data.table',否則'[.data.table'會將它重定向到'[.data.frame'。 – Arun

+0

此外,最好發佈'sessionInfo()'的輸出,而不是隻聲明你的R版本。只是一個建議。 – Arun

+0

@Arun謝謝你指出我正確的方向關於包不是data.table感知 –

回答

1

對軟件包data.table知道我不得不

depends: data.table 

添加到包描述文件