0
我有一个数据集和三个函数。第一个函数主题(x,n)有两个参数:一个对象x和一个值n。 subject()将x转换为data.frame类,然后使用管道运算符%>%在x上应用dplyr函数。 然后由subject(x,n)返回的对象用管道操作符%>%提供与主体(x,n)链接的函数visit(x,n)。 visit(x,n)函数将其接收的对象的类转换为data.frame,然后将dplyr的filter()函数应用于数据框,并在将其转换为“访问”类后返回结果数据框。最后,第三个函数空间(x,r)通过visit(x,n)与管道运算符%>%相关联,在接收到的对象上应用filter(),并将其类更改为dataframe并返回班级“房间”功能“访问”和“房间”不按设计工作。我想知道您是否可以帮助我了解错误及其原因,并提出修复代码的方法。谢谢。函数内的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