2017-02-13 74 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中的可见性百分比,导入该电子表格并在主电子表格中排名的合并排名。然后我可以做所有的计算。