2017-02-13 10 views
-3

のxlsxファイルが巨大で、ランキングに表示される可視性を計算する必要があります。検索ボリュームのRで計算を作成する必要がありますが、数字が

ランク*の%:Excelは、このような大きなファイルを扱うことができないので、私はキーワードの可視性を計算するために、とにかくR.

を学んでいる、私はこの式を持っている必要があります。 90%
2 - - 80%
3から70パーセント
4から60パーセント
5から50パーセント

1:

%は任意ながら私が使用し、ランクに依存します
6から40パーセント
7から30までパーセント
8から20までパーセント
百分の9から10
10から5パーセント
11+ - 私はExcelで仕事ができる場合には0%

は、私は、検索ボリュームによってシートに上記のチャートを持っている、とランクのVLOOKUPを行うには、*です。例:

Keyword |rank |search volume |visibility  
keyword1 |1 |1,000   |900 
Keyword2 |5 |50,000  |25,000 
Keyword3 |12 |3,500   |0 

Rでこれを行う方法はありますか。私はRにとって非常に新しく、ループのためにいくつかのことを試しましたが、何も効果がありませんでした。このような初期データフレームの名前rank_dataで事前

+0

こんにちは、データのいくつかの行の 'dput'を貼り付けて、期待される出力を表示しますか?例えば、 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

'cut'関数を使用して、使用するランククラスを持つ別の列を作成します。ランククラスやその他の入力を引数とする関数を記述し、この関数で計算します。 – snaut

+0

私はちょうどカットを見て、それはある範囲で動作します。可視性のためにランク11+をカットして0を返すことができますが、ランク1〜10を個別に計算する必要があります。これを行うより速い方法がありますか?ご協力いただきありがとうございます。 – jceg316

答えて

1

おかげ..

keyword rank search_volume 
1  A 1   1000 
2  B 5   50000 
3  C 12   3500 

あなたは小さな関数を作成し、dplyr内のmutate機能を使用して新しい列に結果を追加することができとしょうかん。可視列を含む新しいデータフレームを返す

library(dplyr) 

visFunc <- function(rank, search_volume){ 

    if(rank == 1){ 
     rank_pct <- 0.90 
    } 

    else if(rank == 5){ 
     rank_pct <- 0.50 
    } 

    else if(rank > 10){ 
     rank_pct <- 0 
    } 

    return(rank_pct * search_volume) 

} 

visabilityData <- mutate(rank_data, visability = mapply(visFunc, rank,search_volume)) 

..あなたが合うよう

keyword rank search_volume visability 
1  A 1   1000  900 
2  B 5   50000  25000 
3  C 12   3500   0 

明らかに機能を微調整。

0

あなたの返答をありがとうが、私はそれを把握することができました。

私は、列Aのランク、列Bの可視度%、これをインポートし、このスプレッドシートのランクをメインスプレッドシートのランクとマージしたスプレッドシートを作成しました。それで私はすべての計算をすることができました。

関連する問題