我需要在R中创建一个计算,但计算会根据数字的变化而变化

时间:2017-02-13 11:00:15

标签: r

我有一个巨大的xlsx文件,其中包含关键字排名,我需要计算排名的可见性。 Excel无法处理这么大的文件,所以我正在学习R。

无论如何,要计算关键字的可见性,我需要有这个公式:

排名*搜索量的百分比。

%取决于等级,而我任意使用:

  

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

当我可以在Excel中工作时,我会将上面的图表放在一张表中,并按搜索量执行排名和*的查找。例如:

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

我如何在R中这样做?我对R很新,用for循环尝试过一些东西,但没有任何效果。

提前致谢

2 个答案:

答案 0 :(得分:1)

使用名为rank_data的初始数据框,如此..

:h text-objects

您可以创建一个小函数,并使用dplyr库中的mutate函数将结果附加到新列。

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

返回包含可见性列的新数据框。

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))

显然可以根据需要调整功能。

答案 1 :(得分:0)

感谢您的回复,但我设法弄清楚了。

我制作了一个电子表格,该列表在A栏中排名,B列中的可见性%,导入此电子表格并在此电子表格中合并排名,并在主电子表格中排名。然后我可以做所有的计算。