R为应用到的每一行复制tapply

R为应用到的每一行复制tapply,r,R,我有这样一个数据集: Anno.2013 Giorni.2013 Anno.2014 Giorni.2014 Stagionalità Destagionata2013 1 18 mar 17 mer Bassa 9.3710954 2 9 mer 5 gio Bassa 4.6855477 3

我有这样一个数据集:

       Anno.2013 Giorni.2013 Anno.2014 Giorni.2014 Stagionalità Destagionata2013
1         18         mar        17         mer        Bassa        9.3710954
2          9         mer         5         gio        Bassa        4.6855477
3          9         gio         2         ven        Bassa        4.6855477
4          8         ven         5         sab        Bassa        4.1649313
5          4         sab         2         dom        Bassa        2.0824656
6          2         dom         0         lun        Bassa        1.0412328
7          1         lun         1         mar        Bassa        0.5206164
8          0         mar         0         mer        Bassa        0.0000000
9          2         mer         0         gio        Bassa        1.0412328
10         0         gio         1         ven        Bassa        0.0000000
   Destagionata2014 Settimana2013 Settimana2014
1         9.4463412             1             1
2         2.7783356             1             1
3         1.1113343             1             1
4         2.7783356             1             1
5         1.1113343             1             1
6         0.0000000             1             2
7         0.5556671             2             2
8         0.0000000             2             2
9         0.0000000             2             2
10        0.5556671             2             2

> str(domanda)
'data.frame':   365 obs. of  9 variables:
 $ Anno.2013       : int  18 9 9 8 4 2 1 0 2 0 ...
 $ Giorni.2013     : Factor w/ 7 levels "dom","gio","lun",..: 4 5 2 7 6 1 3 4 5 2 ...
 $ Anno.2014       : int  17 5 2 5 2 0 1 0 0 1 ...
 $ Giorni.2014     : Factor w/ 7 levels "dom","gio","lun",..: 5 2 7 6 1 3 4 5 2 7 ...
 $ Stagionalità    : Factor w/ 2 levels "Alta","Bassa": 2 2 2 2 2 2 2 2 2 2 ...
 $ Destagionata2013: num  9.37 4.69 4.69 4.16 2.08 ...
 $ Destagionata2014: num  9.45 2.78 1.11 2.78 1.11 ...
 $ Settimana2013   : Factor w/ 53 levels "1","2","3","4",..: 1 1 1 1 1 1 2 2 2 2 ...
 $ Settimana2014   : Factor w/ 53 levels "1","2","3","4",..: 1 1 1 1 1 2 2 2 2 2 ...
我想将每一行去悬浮化A2013除以去悬浮化A2013的平均值,再按Settimana2013分组。例如:

去悬浮2013[1:6]/平均值(去悬浮2013[1:6])

我尝试使用tapply:

Media_Settimana<-as.vector(tapply(domanda$Anno.2013, domanda$Settimana2013, mean))
Media_Settimana

> Media_Settimana
 [1]  8.333333  5.857143  3.142857  4.285714  6.428571  6.714286 13.714286  3.428571
 [9]  4.000000  3.285714 11.428571  6.285714 11.714286  7.285714 12.142857 12.000000
[17] 16.000000 20.857143 19.428571 23.428571 33.857143 31.000000 31.714286 32.428571
[25] 38.571429 41.000000 36.000000 38.714286 36.714286 39.857143 40.714286 39.857143
[33] 41.714286 41.857143 41.142857 40.571429 40.428571 37.857143 32.714286 19.714286
[41]  9.000000  4.142857  5.857143 16.285714 11.000000  8.428571  4.428571  6.857143
[49]  6.285714  3.857143  7.000000  5.571429 18.500000
Media\u Settimana Media\u Settimana
[1]  8.333333  5.857143  3.142857  4.285714  6.428571  6.714286 13.714286  3.428571
[9]  4.000000  3.285714 11.428571  6.285714 11.714286  7.285714 12.142857 12.000000
[17] 16.000000 20.857143 19.428571 23.428571 33.857143 31.000000 31.714286 32.428571
[25] 38.571429 41.000000 36.000000 38.714286 36.714286 39.857143 40.714286 39.857143
[33] 41.714286 41.857143 41.142857 40.571429 40.428571 37.857143 32.714286 19.714286
[41]  9.000000  4.142857  5.857143 16.285714 11.000000  8.428571  4.428571  6.857143
[49]  6.285714  3.857143  7.000000  5.571429 18.500000

但是我不能为每一行复制值。

正如MrFlick所指出的,您需要
ave
而不是
tapply
,因为
ave
自动将1个长度结果循环到输入的长度。在这里,我们做你试图用
虹膜
做的事情(通过每个物种内的
萼片宽度
平均值对
萼片长度
进行标准化):


我认为您需要
ave(domanda$Anno.2013,domanda$Settimana2013)
,但从您的示例中不太清楚。请阅读以获取关于更好地包含样本数据的建议。此外,它还可以提供一个小示例,您可以在其中提供所需的结果。
Destagiona2013
不会出现在您的
tapply
尝试中,也不会出现除法。对不起,我是初学者。所以@Frank这是正确的tapply:
>Media\u Settimana Media\u Settimana[1]4.338470 3.049325 1.636223 2.231213 3.346820 3.495567 7.139882 1.784971
…是的,这是工作。有了“ave”,我就有了一个365个值的向量。非常感谢你<代码>>ave(去平稳化2013年,Settimana2013年,乐趣=平均值)[1]4.338470 4.338470 4.338470 4.338470 3.049325[8]3.049325 3.049325 3.049325 3.049325 3.049325 3.049325 1.636223[15]1.636223 1.636223 1.636223 1.636223 1.636223 1.636223 2.231213[22]2.231213 2.231213 2.231213 2.231213 2.231213 2.231213 2.231213 3.346820[29]3.346820 3.346820 3.346820 3.346820 3.346820 3.346820 3.346820 3.346820 3.495567
transform(iris, norm.sep.len=Sepal.Length / ave(Sepal.Width, Species, FUN=mean))