lapply不适用于此子集

时间:2017-06-17 19:05:35

标签: r

我正在创建一个类并应用自己的方法。我创建了一个这样的类:

make_LD1.data.frame<-function(data){structure(list(id=data$id,
                              `visit=data1$visit,
                               room=data1$room,
                               value=data1$value,
                               timepoint=data1$timepoint),
                              class=c("LongitudinalData"))}

现在我在“LongitudinalData”中拥有它我想要应用此类的方法,该方法对ID的成员(即14)进行子集化,并返回此特定ID的数据(所有变量)。我是这样做的:

subject.LongitudinalData<-function(data, n=c(14, 20, 41, 44, 46, 54, 64, 74, 104, 106)) 
    {structure(lapply(data, function(x) x[which (data$id==n)]),
                    class = c("subject", "LongitudinalData", "data.frame"))}

问题在于,当我想查看主题(ss,14)的数据时,它并没有给我任何回报。

我不知道我做错了什么......

如果我做str(subject(ss, 14))它会让我回到结构但是如果我申请:  dim(subject(ss,14))它让我回复:[1] 0 5

另一种尝试是当我应用split时:

ss.by.condition <- split(ss, ss$room)  where ss<-subject(ss,14)

它让我回来了:Error in x$id[[c(1)]] : subíndice fuera de los límites

发生什么事了?有什么问题?

> str(data1)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 120877 obs. of 5 variables:
$ id : int 14 14 14 14 14 14 14 14 14 14 ...
$ visit : int 0 0 0 0 0 0 0 0 0 0 ...
$ room : chr "bedroom" "bedroom" "bedroom" "bedroom" ...
$ value : num 6 6 2.75 2.75 2.75 2.75 6 6 2.75 2.75 ...
$ timepoint: int 53 54 55 56 57 58 59 60 61 62 ...
 - attr(*, "spec")=List of 2
   ..$ cols :List of 5

0 个答案:

没有答案