2016-12-26 9 views
0

共有因子レベル( "Auction_ID")を持つ2つのデータフレーム(df、df5)があります。 だから dfにはnum.biddersとres.bidとAuction_IDがあります。 df5、bid.points、Auction_IDがあります。Rの2つのデータフレームにlapply()とspline()を結合しない

の質問はどのようにある

spline <- smooth.spline(df$c_bidders,df$res.bid) 

(私はDF5に保存すべきかどうかわからないです)私は、スプラインの見積もりを取得するためにsmooth.splines()関数を使用して、私はDFの新しい列としてそれを保存各レベルのdf $ spline1とdf5 $ bid.pointsにpredict()関数を使用する。私はlapplyを使い、関数の入力データとしてdf、df5を送信しようとしましたが、私はそれを行うことができないようです。 のように:私はリスト変数を導入した場合、このヘルプは意志知らない

lapply(df,df5, function(t,t1) 
    { 
    tt<-predict(t$spline,t1$bid.points,deriv=0)$y 
    return(tt)} 
    ) 

私はその後、私は非常に大きなデータフレーム終わるのです(= "Auction_ID" によってDF、DF5、)マージを使用する場合:

str(df1): 
    Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 3967 obs. of 17 variables: 

    str(df5) 
    'data.frame': 18338 obs. of 2 variables: 

    x <- merge(df5, df1, by = "Auction_ID") 
    str(x) 
    'data.frame': 501367 obs. of 19 variables: 

((マージ) "すべて" のオプションは、すでにのように試されるとします。 all.y = TRUE ... OBSの同じ数を与えます。私の目的のために良いされていない。

+0

元のWinnersCurse.txt Rコードは、翻訳が整列していないため、必要なだけ正確に行いますか?たとえば、* AuctionID *はオリジナルでは参照されません。 – Parfait

+0

彼らは使用しました:コード中のオークションID ... –

答えて

0

はあなたが50K行で大きなDFに対処する必要はありません問題ですか?

たぶん、マージ(別名結合)は、あなたが必要とするものではありません。おそらく、 "マッチ"機能を使用して基本的にvlookupを実行する必要があります。 df $ spline1の各値をdf5 $ bid.pointsの各対応値(オークションIDに基づく)に一致させます。これはあなたの目的のために動作するかどう

参照してください:

# assuming df5 is the target df: 
df5$spline1 <- df$spline1[match(df$Auction_ID,df5$Auction_ID)] 

## OR 

# assuming df is the target df: 
df$bid.points <- df5$bid.points[match(df$Auction_ID,df5$Auction_ID)] 
0

predict()から返された値のリストを返し両方データフレーム渡すMapの使用を検討してください:

一覧リターン

Map(function(t, t1) predict(t$spline, t1$bid.points,deriv=0)$y, df, df5) 

上記は、2番目のデータフレームを3番目の引数として渡すのと等価です。 lapply()

lapply(df, function(t,t1) { 
    predict(t$spline, t1$bid.points, deriv=0)$y 
}, df5) 

マトリックスマトリックスを返しsapply()を使用して、あるいは

戻り:

sapply(df, function(t,t1) { 
    predict(t$spline, t1$bid.points, deriv=0)$y 
}, df5) 

またはmapply()Map()後ろ基底関数(その非簡略ラッパー)

mapply(function(t,t1) predict(t$spline, t1$bid.points, deriv=0)$y, df, df5) 
関連する問題