我有一个数据集和三个函数。第一个函数主题(x,n)有两个参数:对象x和值n。 subject()将x转换为data.frame类,然后使用管道运算符%>%在x上应用dplyr函数。 然后,主题(x,n)返回的对象将与主题(x,n)链接的函数visit(x,n)与管道运算符%>%一起提供。 visit(x,n)函数将接收到的对象的类转换为data.frame,然后在数据帧上应用dplyr的filter()函数,并在将其转换为“visit”类后返回结果数据帧。最后,第三个函数室(x,r)与管道运算符%>%与visit(x,n)链接,在接收到的对象上应用filter(),之后将其类更改为dataframe并返回一个对象类“房间”功能“访问”和“房间”不按设计工作。我想知道你是否可以帮我理解错误及其原因,并提出修改代码的方法。谢谢。
> 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
答案 0 :(得分:0)
代码应改变如下:
visit <- function(x, n){
class(x) <- "data.frame"
y <- x %>% filter(visit == n)
structure(y, class = "visit")
}
room <- function(x, r){
class(x) <- "data.frame"
y <- x %>% filter(room == r)
structure(y, class = "room")
}
编辑完成后代码没有问题