私はデータセットと3つの関数を持っています。最初の関数subject(x、n)には、オブジェクトxと値nという2つの引数があります。 subject()はxをdata.frameクラスに変換し、配管演算子%>%を使用してxに対してdplyr関数を適用します。 次に、subject(x、n)によって返されたオブジェクトは、配管演算子%>%でsubject(x、n)にリンクされた関数visit(x、n)を送ります。 visit(x、n)関数は、受け取ったオブジェクトのクラスをdata.frameに変換し、dplyrのfilter()関数をデータフレームに適用し、それを「訪問」クラスに変換した後の結果のデータフレームを返します。最後に、3番目の関数ルーム(x、r)はpipe演算子%>%とvisit(x、n)でリンクされ、クラスをdataframeに変更してオブジェクトを返すと、受信したオブジェクトにfilter()を適用し、 class "room"関数 "visit"と "room"は設計どおりに動作しません。私がエラーとその原因を理解する助けとなり、コードを修正する方法を提案できるのだろうかと思います。ありがとうございました。次のように関数内のDplyrコマンド
> y
id visit room value timepoint
1 14 0 bedroom 6.00 53
2 15 0 den 6.00 54
3 14 1 den 2.75 55
4 14 0 bedroom 2.75 56
5 17 1 den 2.75 57
6 15 1 bedroom 2.75 58
7 16 2 den 6.00 59
8 16 2 den 6.00 60
9 14 2 den 2.75 61
10 12 0 den 2.75 62
subject <- function(x, n){
class(x) <- "data.frame"
y <- x %>% select(id, visit, room, value) %>% filter(id == n)
structure(y, class = c("subject"))
}
visit <- function(x, n){
class(x) <- "data.frame"
x %>% filter(visit == n)
structure(x, class = "visit")
}
room <- function(x, r){
class(x) <- "data.frame"
x %>% filter(room == r)
structure(x, class = "room")
}
w <- subject(y, 14) %>% visit(0) %>% room("bedroom")
class(w) <- "data.frame"
w
id visit room value
1 14 0 bedroom 6.00
2 14 1 den 2.75
3 14 0 bedroom 2.75
4 14 2 den 2.75
ずに働いたのこの配列のどれを把握する 'トレースバック()'使用する必要が呼び出しが 'match'を間違って呼び出しています。 'dput(y)'を投稿できるのであれば理想的です。 –
'class = visit'または' class = "visit" '? – HubertL
あなたは正しいです。それはclass = "visit" – gk7