2016-09-07 15 views
0

私はデータフレームのリストxyzを持っていて、すべてのデータフレームに2つの数値ベクトル(xとy)があります。私は、xとyにパッケージスプラインからinterpSpline機能を適用したいが、私はやるとき:interpSpline関数のエラー

lapply(xyz, function (x){ 
x%>% 
interpSpline(x,y) 
}) 

私は次のエラーを取得する:

Error in data.frame(x = as.numeric(obj1), y = as.numeric(obj2)) :
(list) object cannot be coerced to type 'double'

答えて

0

それは動作しませんinterpSplineにはないので、最初の引数としてデータフレームを取ります。

xyz <- list(data.frame(x=rnorm(10),y=rnorm(10)), 
      data.frame(x=rnorm(10),y=rnorm(10))) 
library(splines) 
sf <- function(d) with(d,interpSpline(x,y))) 
s <- lapply(xyz,sf) 

また、interpSpline(d$x,d$y)を使用することもできます。それパイプで動作するようにinterpSplineを取得するために十分なねじれを行うことは可能かもしれないが、それはほとんどトラブルの価値は思わない...

+0

は、私はあなたの提案を使用しようとしましたが、今私が言う別のエラーがあります。 "interpSpline.default(d $ x、x $ y)のエラー: 'x'の値は異なる必要があります" – memy