12666727b9
12666727b9

Reputation: 1139

tapply ()? Equal lengths?

Good afternoon, I'm trying applying the tapply function in order to obtain means reading through different treatment group (the 'Placebo' one and the 'Active' one) of the following dataset:

> str(dat_long)
'data.frame':   1500 obs. of  7 variables:
 $ subject.id: num  1 1 1 2 2 2 3 3 3 4 ...
 $ treatment : Factor w/ 2 levels "Placebo","Active": 1 1 1 1 1 1 1 1 1 1 ...
 $ sex       : num  1 1 1 1 1 1 1 1 1 1 ...
 $ age       : num  58.1 58.1 58.1 54.8 54.8 ...
 $ miss_pat  : chr  "---" "---" "---" "--X" ...
 $ times     : num  1 2 3 1 2 3 1 2 3 1 ...
 $ scores    : num  13.62 7.25 20.45 33.34 20.9 ..

The format of dataset I'm working on, is the "long" one. I've created the following list object

flst <- list(times, treatment)

by gathering the different time-poimt and the received treatments, where I've run the tapply() function.

(tN <-  
    tapply(scores, flst, 
              FUN = function(x) length(x[!is.na(x)])))

I cannot figure out why I'm perpetuating in getting back the same error

Error in tapply(scores, flst, FUN = function(x) length(x[!is.na(x)])) : 
  arguments must have the same length

I've tried to seeking for a solution (e.g coverting as a factor variables and so on), but none of them seemed suit my case. Anyone may have an idea the problem I'm going throgh?

Just in case, on purpose to cope with NA observation, what and where am I supposed to enter in the code?

Thanks a lot for paying attention

P.S. Just in case I report here following each of these arguments lengths

> length(flst)
[1] 2
> length(scores)
[1] 1500

Upvotes: -1

Views: 199

Answers (1)

12666727b9
12666727b9

Reputation: 1139

Ok. Thanks for whom answers so far. I'm going to try to provide more details just for getting the situation more understandable.

This is the original dataset I was working on, that is in the wide format.

> dat_wide
    subject.id treatment measure1  measure2 measure3 sex      age miss_pat
1            1         1 13.61906  7.249175 20.44918   1 58.12831      ---
2            2         1 33.33751 20.896999       NA   1 54.77794      --X
3            3         1       NA 20.869364 26.12443   1 59.55550      X--
4            4         1 37.75143 26.253406 29.03896   1 59.37837      ---
5            5         1 28.21168 14.652736 23.65234   1 63.34226      ---
6            6         1 32.40856 18.702288       NA   0 55.36262      --X
7            7         1 31.63005 18.682889       NA   1 59.02119      --X
8            8         1       NA 18.244421 22.02274   0 57.57435      X--
9            9         1       NA 27.351230 36.86480   1 52.08140      X--
10          10         1 28.10867 16.769758 23.67930   1 62.93165      ---
11          11         1 33.55693 18.499841       NA   0 53.46754      --X
12          12         1 22.88379 14.061066 30.02255   1 57.49554      ---
13          13         1 30.99073 15.350301 20.69450   1 57.92600      ---
14          14         1 26.35118 15.195037 26.83573   0 58.42347      ---
15          15         1 20.80077 16.112581 34.78064   1 60.22746      ---
16          16         1 34.64003        NA 32.96944   1 56.28172      -X-
17          17         1 26.70361 23.846794 31.24356   0 57.93085      ---
18          18         1 25.61433 19.779788 25.75783   1 59.35028      ---
19          19         1 36.51201 24.594663       NA   0 59.32188      --X
20          20         1 33.18090 31.846358 34.21801   0 58.16217      ---
21          21         1       NA 23.813420 28.49156   1 58.39313      X--
22          22         1 28.20934 12.516007       NA   0 53.24436      --X
23          23         1 30.64196        NA 35.01832   1 59.12392      -X-
24          24         1       NA 26.596392       NA   1 56.22792      X-X
25          25         1       NA 13.380347 27.72617   1 59.75437      X--
26          26         1 27.95115 14.652209 27.44068   1 64.86220      ---
27          27         1 31.01423 18.881365 30.15189   0 61.84734      ---
28          28         1 41.28848 32.966200       NA   0 60.00848      --X
29          29         1 23.90214 16.894180 30.08366   0 55.09433      ---
30          30         1 27.91571 21.604654 29.97184   0 57.16355      ---
31          31         1 25.48024 14.512467 26.89893   1 52.28091      ---
32          32         1       NA 20.627647 24.94113   1 59.14089      X--
33          33         1       NA        NA 30.30841   0 63.53035      XX-
34          34         1       NA 17.220079 27.11605   0 54.70157      X--
35          35         1       NA 22.904332 30.54679   0 62.82148      X--
36          36         1 24.71682 11.343220 20.16185   0 55.81194      ---
37          37         1 21.54434 15.245485 27.42116   0 56.77520      ---
38          38         1 31.00812 21.882236 31.04285   1 53.60319      ---
39          39         1       NA 29.445792       NA   0 62.88837      X-X
40          40         1       NA 21.325835 27.29858   0 59.92034      X--
41          41         1       NA 23.330492 31.01700   1 57.10396      X--
42          42         1 22.13132 17.385187       NA   1 49.80586      --X
43          43         1       NA 17.181349 24.70715   1 56.92603      X--
44          44         1 24.57225        NA 32.11101   1 52.17824      -X-
45          45         1 28.79543 15.302079 24.03278   1 63.82524      ---
46          46         1 25.36835 18.152139 23.56443   1 56.89171      ---
47          47         1       NA 21.594259       NA   1 56.04408      X-X
48          48         1 26.62196 22.544339 27.04008   1 62.31757      ---
49          49         1 24.22001  6.924847 19.89172   0 58.69229      ---
50          50         1 34.14105 22.283254 34.41771   1 57.73471      ---
51          51         1 18.90136 13.449724 28.69964   0 63.48494      ---
52          52         1 33.01857 20.880303 31.32787   1 60.22318      ---
53          53         1 31.06980 23.687328 32.66611   1 54.40638      ---
54          54         1 31.98485 20.204848 26.00955   0 62.71068      ---
55          55         1 30.50251 19.632418 19.03141   1 59.27135      ---
56          56         1       NA 24.607656 30.37130   1 59.40362      X--
57          57         1 33.55517 22.213067 27.59768   0 57.04789      ---
58          58         1 24.19856 10.095334 21.76153   0 54.56281      ---
59          59         1 29.62803 15.703452 26.99926   0 56.66213      ---
60          60         1 34.01922 18.515003       NA   0 52.76635      --X
61          61         1 29.86470 17.587567 26.02713   1 61.06847      ---
62          62         1 25.61215 20.746458 25.80680   1 64.25965      ---
63          63         1 27.60233 16.047261 27.63316   1 60.87826      ---
64          64         1 24.18180 15.007888       NA   1 62.95863      --X
65          65         1 30.34542 24.986253 32.33394   0 52.55152      ---
66          66         1 21.53614 15.999301 27.95432   1 57.96632      ---
67          67         1       NA 27.856354       NA   1 61.76696      X-X
68          68         1 22.09629 15.252170 28.43995   0 64.99414      ---
69          69         1 25.80952 18.565819 27.77111   0 61.26983      ---
70          70         1 32.99136 22.610543       NA   0 57.79422      --X
71          71         1       NA 20.701995 23.77574   0 59.83622      X--
72          72         1 25.53110 18.466437 29.50384   1 60.38576      ---
73          73         1 32.21151 21.740227 24.21088   1 56.07185      ---
74          74         1 21.28635  9.444369 18.28459   0 50.20183      ---
75          75         1       NA 25.000759 33.57668   1 50.22598      X--
76          76         1 26.12087 12.385796 18.91420   1 53.40782      ---
77          77         1       NA 22.767420 28.75717   1 48.27044      X--
78          78         1 24.64162 21.218430       NA   1 55.94655      --X
79          79         1 27.07266 15.348420 24.72210   0 53.69175      ---
80          80         1 32.75587 28.013513       NA   0 58.04689      --X
81          81         1 29.30842 17.072955 24.29882   1 61.06444      ---
82          82         1       NA 18.382335 28.69544   0 58.54447      X--
83          83         1 31.78905 24.603102 33.91789   0 56.24937      ---
84          84         1 27.99531 19.921259 25.14260   1 58.49543      ---
85          85         1 26.34945 17.718344 33.91154   1 65.19380      ---
86          86         1 31.28590 18.000405 29.33850   1 64.79698      ---
87          87         1 19.46943 12.058767 24.16417   0 61.99136      ---
88          88         1 33.05861 27.022073 35.98174   1 57.79309      ---
89          89         1 25.82099 14.353354 22.29782   1 56.99255      ---
90          90         1       NA 18.394579 25.89987   0 52.29756      X--
91          91         1       NA 17.594238       NA   0 57.60890      X-X
92          92         1 36.62178 25.121140 34.90862   1 59.53585      ---
93          93         1 31.58383 16.929367 18.06532   1 56.49771      ---
94          94         1 32.79600 25.161476 29.57509   1 58.27547      ---
95          95         1 32.57059 23.029130       NA   1 58.93147      --X
96          96         1 32.44934 12.892612       NA   1 58.54679      --X
97          97         1 28.83562 15.361608 21.96002   0 52.01731      ---
98          98         1 28.49706 22.351217       NA   1 58.02899      --X
99          99         1 25.28790 14.283020       NA   0 53.90112      --X
100        100         1       NA 20.031777 29.93904   0 59.34664      X--
101        101         1 30.86933 20.853957 23.67089   1 60.41797      ---
102        102         1       NA        NA 25.25865   1 58.51619      XX-
103        103         1 32.60158 23.890740 27.78209   1 52.93076      ---
104        104         1 29.64438 26.275628 32.96612   0 57.67552      ---
105        105         1 19.47877 10.237089 14.53323   1 62.56323      ---
106        106         1 28.50985 24.172877       NA   1 56.20708      --X
107        107         1       NA 21.111304 27.44881   1 55.47168      X--
108        108         1 26.90495 15.140661 26.54333   0 59.25477      ---
109        109         1       NA 28.740031       NA   0 53.61378      X-X
110        110         1 27.55861 21.708753 30.61987   0 62.90328      ---
111        111         1       NA 26.379662       NA   1 55.03740      X-X
112        112         1 22.88802 13.638065 25.35349   0 57.83266      ---
113        113         1 32.92606 24.907022 27.52318   0 62.04887      ---
114        114         1       NA 23.853791 34.18453   1 60.97984      X--
115        115         1       NA 32.755543 34.09703   1 60.03185      X--
116        116         1 17.04010 10.772446 22.38210   1 56.68107      ---
117        117         1 20.80304 16.040884 19.17766   0 60.20649      ---
118        118         1       NA 15.337750 28.42040   0 58.86986      X--
119        119         1 26.22063  9.210329 16.85208   1 61.22018      ---
120        120         1 39.27848 21.273545 29.96761   0 57.69893      ---
121        121         1       NA 20.177623 27.03394   1 58.71332      X--
122        122         1       NA 19.084165 26.29572   1 61.85389      X--
123        123         1 25.33397 22.082934 35.30603   0 55.82552      ---
124        124         1 27.30526 22.526807 33.81731   1 58.29532      ---
125        125         1       NA 26.020347 35.15877   1 66.13519      X--

After further changes, I've converted it in the long format by using the function gather of the tidyr library and the I've ordered each observation so that the subject columns got ordered for each of the three measurements time-points.

> dat_long
     subject.id treatment sex      age miss_pat times    scores
1             1   Placebo   1 58.12831      ---     1 13.619060
501           1   Placebo   1 58.12831      ---     2  7.249175
1001          1   Placebo   1 58.12831      ---     3 20.449176
2             2   Placebo   1 54.77794      --X     1 33.337510
502           2   Placebo   1 54.77794      --X     2 20.896999
1002          2   Placebo   1 54.77794      --X     3        NA
3             3   Placebo   1 59.55550      X--     1        NA
503           3   Placebo   1 59.55550      X--     2 20.869364
1003          3   Placebo   1 59.55550      X--     3 26.124432
4             4   Placebo   1 59.37837      ---     1 37.751430
504           4   Placebo   1 59.37837      ---     2 26.253406
1004          4   Placebo   1 59.37837      ---     3 29.038963
5             5   Placebo   1 63.34226      ---     1 28.211679
505           5   Placebo   1 63.34226      ---     2 14.652736
1005          5   Placebo   1 63.34226      ---     3 23.652342
6             6   Placebo   0 55.36262      --X     1 32.408561
506           6   Placebo   0 55.36262      --X     2 18.702288
1006          6   Placebo   0 55.36262      --X     3        NA
7             7   Placebo   1 59.02119      --X     1 31.630050
507           7   Placebo   1 59.02119      --X     2 18.682889
1007          7   Placebo   1 59.02119      --X     3        NA
8             8   Placebo   0 57.57435      X--     1        NA
508           8   Placebo   0 57.57435      X--     2 18.244421
1008          8   Placebo   0 57.57435      X--     3 22.022740
9             9   Placebo   1 52.08140      X--     1        NA
509           9   Placebo   1 52.08140      X--     2 27.351230
1009          9   Placebo   1 52.08140      X--     3 36.864796
10           10   Placebo   1 62.93165      ---     1 28.108672
510          10   Placebo   1 62.93165      ---     2 16.769758
1010         10   Placebo   1 62.93165      ---     3 23.679297
11           11   Placebo   0 53.46754      --X     1 33.556930
511          11   Placebo   0 53.46754      --X     2 18.499841
1011         11   Placebo   0 53.46754      --X     3        NA
12           12   Placebo   1 57.49554      ---     1 22.883795
512          12   Placebo   1 57.49554      ---     2 14.061066
1012         12   Placebo   1 57.49554      ---     3 30.022550
13           13   Placebo   1 57.92600      ---     1 30.990728
513          13   Placebo   1 57.92600      ---     2 15.350301
1013         13   Placebo   1 57.92600      ---     3 20.694504
14           14   Placebo   0 58.42347      ---     1 26.351176
514          14   Placebo   0 58.42347      ---     2 15.195037
1014         14   Placebo   0 58.42347      ---     3 26.835728
15           15   Placebo   1 60.22746      ---     1 20.800769
515          15   Placebo   1 60.22746      ---     2 16.112581
1015         15   Placebo   1 60.22746      ---     3 34.780644
16           16   Placebo   1 56.28172      -X-     1 34.640032
516          16   Placebo   1 56.28172      -X-     2        NA
1016         16   Placebo   1 56.28172      -X-     3 32.969443
17           17   Placebo   0 57.93085      ---     1 26.703609
517          17   Placebo   0 57.93085      ---     2 23.846794
1017         17   Placebo   0 57.93085      ---     3 31.243559
18           18   Placebo   1 59.35028      ---     1 25.614333
518          18   Placebo   1 59.35028      ---     2 19.779788
1018         18   Placebo   1 59.35028      ---     3 25.757833
19           19   Placebo   0 59.32188      --X     1 36.512015
519          19   Placebo   0 59.32188      --X     2 24.594663
1019         19   Placebo   0 59.32188      --X     3        NA
20           20   Placebo   0 58.16217      ---     1 33.180896
520          20   Placebo   0 58.16217      ---     2 31.846358
1020         20   Placebo   0 58.16217      ---     3 34.218013
21           21   Placebo   1 58.39313      X--     1        NA
521          21   Placebo   1 58.39313      X--     2 23.813420
1021         21   Placebo   1 58.39313      X--     3 28.491556
22           22   Placebo   0 53.24436      --X     1 28.209340
522          22   Placebo   0 53.24436      --X     2 12.516007
1022         22   Placebo   0 53.24436      --X     3        NA
23           23   Placebo   1 59.12392      -X-     1 30.641962
523          23   Placebo   1 59.12392      -X-     2        NA
1023         23   Placebo   1 59.12392      -X-     3 35.018324
24           24   Placebo   1 56.22792      X-X     1        NA
524          24   Placebo   1 56.22792      X-X     2 26.596392
1024         24   Placebo   1 56.22792      X-X     3        NA
25           25   Placebo   1 59.75437      X--     1        NA
525          25   Placebo   1 59.75437      X--     2 13.380347
1025         25   Placebo   1 59.75437      X--     3 27.726174
26           26   Placebo   1 64.86220      ---     1 27.951153
526          26   Placebo   1 64.86220      ---     2 14.652209
1026         26   Placebo   1 64.86220      ---     3 27.440682
27           27   Placebo   0 61.84734      ---     1 31.014231
527          27   Placebo   0 61.84734      ---     2 18.881365
1027         27   Placebo   0 61.84734      ---     3 30.151889
28           28   Placebo   0 60.00848      --X     1 41.288482
528          28   Placebo   0 60.00848      --X     2 32.966200
1028         28   Placebo   0 60.00848      --X     3        NA
29           29   Placebo   0 55.09433      ---     1 23.902144
529          29   Placebo   0 55.09433      ---     2 16.894180
1029         29   Placebo   0 55.09433      ---     3 30.083663
30           30   Placebo   0 57.16355      ---     1 27.915708
530          30   Placebo   0 57.16355      ---     2 21.604654
1030         30   Placebo   0 57.16355      ---     3 29.971840
31           31   Placebo   1 52.28091      ---     1 25.480237
531          31   Placebo   1 52.28091      ---     2 14.512467
1031         31   Placebo   1 52.28091      ---     3 26.898932
32           32   Placebo   1 59.14089      X--     1        NA
532          32   Placebo   1 59.14089      X--     2 20.627647
1032         32   Placebo   1 59.14089      X--     3 24.941132
33           33   Placebo   0 63.53035      XX-     1        NA
533          33   Placebo   0 63.53035      XX-     2        NA
1033         33   Placebo   0 63.53035      XX-     3 30.308410
34           34   Placebo   0 54.70157      X--     1        NA
534          34   Placebo   0 54.70157      X--     2 17.220079
1034         34   Placebo   0 54.70157      X--     3 27.116048
35           35   Placebo   0 62.82148      X--     1        NA
535          35   Placebo   0 62.82148      X--     2 22.904332
1035         35   Placebo   0 62.82148      X--     3 30.546789
36           36   Placebo   0 55.81194      ---     1 24.716824
536          36   Placebo   0 55.81194      ---     2 11.343220
1036         36   Placebo   0 55.81194      ---     3 20.161854
37           37   Placebo   0 56.77520      ---     1 21.544340
537          37   Placebo   0 56.77520      ---     2 15.245485
1037         37   Placebo   0 56.77520      ---     3 27.421159
38           38   Placebo   1 53.60319      ---     1 31.008123
538          38   Placebo   1 53.60319      ---     2 21.882236
1038         38   Placebo   1 53.60319      ---     3 31.042851
39           39   Placebo   0 62.88837      X-X     1        NA
539          39   Placebo   0 62.88837      X-X     2 29.445792
1039         39   Placebo   0 62.88837      X-X     3        NA
40           40   Placebo   0 59.92034      X--     1        NA
540          40   Placebo   0 59.92034      X--     2 21.325835
1040         40   Placebo   0 59.92034      X--     3 27.298584
41           41   Placebo   1 57.10396      X--     1        NA
541          41   Placebo   1 57.10396      X--     2 23.330492
1041         41   Placebo   1 57.10396      X--     3 31.017001
42           42   Placebo   1 49.80586      --X     1 22.131323
542          42   Placebo   1 49.80586      --X     2 17.385187
1042         42   Placebo   1 49.80586      --X     3        NA
43           43   Placebo   1 56.92603      X--     1        NA
543          43   Placebo   1 56.92603      X--     2 17.181349
1043         43   Placebo   1 56.92603      X--     3 24.707149
44           44   Placebo   1 52.17824      -X-     1 24.572247
544          44   Placebo   1 52.17824      -X-     2        NA
1044         44   Placebo   1 52.17824      -X-     3 32.111015
45           45   Placebo   1 63.82524      ---     1 28.795431
545          45   Placebo   1 63.82524      ---     2 15.302079
1045         45   Placebo   1 63.82524      ---     3 24.032779
46           46   Placebo   1 56.89171      ---     1 25.368353
546          46   Placebo   1 56.89171      ---     2 18.152139
1046         46   Placebo   1 56.89171      ---     3 23.564433
47           47   Placebo   1 56.04408      X-X     1        NA
547          47   Placebo   1 56.04408      X-X     2 21.594259
1047         47   Placebo   1 56.04408      X-X     3        NA
48           48   Placebo   1 62.31757      ---     1 26.621959

I'm going to build a sort of table where both the sample size (tN), the mean (tMn) and the median (tMd) are reported. On this purpose I was going using the following code

attach(dat_long)
flst <- list(times, treatment)
(tN <-  
    tapply(visual, flst, 
              FUN = function(x) length(x[!is.na(x)])))

(tMn <- tapply(scores, flst, FUN = mean))     
(tMd <- tapply(scores, flst, FUN = median))  
colnames(res <- cbind(tN, tMn, tMd))
nms1 <- rep(c("P", "A"), 3)
nms2 <- rep(c("n", "Mean", "Mdn"), rep(2, 3)) #n = numerosità
colnames(res) <- paste(nms1, nms2, sep = ":")
res

I think nonìw to have the possible doubts cleared. Please, just let me know how to cope with this alternatively.

Thanks

Upvotes: 0

Related Questions