2017-02-13 45 views
-3

我有一個充滿關鍵字排名的巨大xlsx文件,我需要計算排名的可見性。 Excel無法處理如此大的文件,所以我在學習R.我需要在R中創建一個計算,但計算會根據數字的變化而變化。

總之,計算關鍵字的知名度,我需要有這樣的公式:搜索量

等級*%。

的%依賴於秩,而任意使用:

1 - 90%
2 - 80%
3 - 70%
4 - 60%
5 - 50%
6 - 40%
7 - 30%
8 - 20%
9 - 10%
10 - 5%
11+ - 0%

當我可以在Excel中工作,我將在紙上面的圖,並做了排名的VLOOKUP,和*由搜索量。例如:

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

我該如何去做R?我對R非常陌生,嘗試過for循環的一些東西,但沒有任何工作。

在此先感謝

+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

一個初始數據幀命名rank_data這樣的..

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

你可以創建一個小的功能,並使用dplyr內發生變異函數的結果追加到一個新列圖書館。你認爲合適的

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中的可見性百分比,導入該電子表格並在主電子表格中排名的合併排名。然後我可以做所有的計算。