0

25 週間にわたる一連の著者の本の販売頻度を表す data.frame があります。

author       week_1 week_2 week_3 week_4 ...
author1      7      4      5          2
author2      3      6      18         5
author3      1      0      2          4
author4      0      1      1          2
author5      0      1      0          0

まず、このデータを使用して、[currentWeek / previousWeek] の割合を示す新しいデータ フレームを作成します。おそらくこのようなもの:

author       week_1 week_2  week_3 week_4 ...
author1      NA      0.57   1.25   0.2
author2      NA      2      3      0.28
author3      NA      0      2      2
author4      NA      1      1      2   
author5      NA      1      0      0   

(ゼロ除算を避けるために、ゼロを1に置き換えたいと思います。)

2 番目に、すべての行に対して簡単な繰り返しを実行し、その著者の売上が 2 つの連続した週のペアで 2 回 100% 増加した隣接する週のトリプレットをチェックし、これをある種の出力テーブルで報告したいと考えています。おそらく次のようになります。

author  startTrendWeek endTrendWeek
author2 1              3
author3 2              4

Rでこれらのいずれかを解決する方法についてのアイデアはありますか?

4

1 に答える 1

4

データを再作成します。

x <- read.table(text=
"author       week_1 week_2 week_3 week_4 
author1      7      4      5          2
author2      3      6      18         5
author3      1      0      2          4
author4      0      1      1          2
author5      0      1      0          0
                ", header=TRUE)

1 行のコード:

cbind(x[1], t(apply(x[, -1], 1, function(xx)xx[-1]/xx[-length(xx)])))

   author    week_2 week_3    week_4
1 author1 0.5714286   1.25 0.4000000
2 author2 2.0000000   3.00 0.2777778
3 author3 0.0000000    Inf 2.0000000
4 author4       Inf   1.00 2.0000000
5 author5       Inf   0.00       NaN
于 2012-07-10T16:56:16.280 に答える