包含函数的R中的循环

包含函数的R中的循环,r,function,api,for-loop,R,Function,Api,For Loop,我是R的新手,我想做一个循环,以返回关键字列表的搜索量(通过API调用) 下面是我使用的代码: install.packages("SEMrushR") library(SEMrushR) mes_keywords_to_check <- readLines("voyage.txt") # List of keywords to check mes_keywords_to_check <- as.character(mes_keywords_to_check) install.p

我是R的新手,我想做一个循环,以返回关键字列表的搜索量(通过API调用)

下面是我使用的代码:

install.packages("SEMrushR")
library(SEMrushR)

mes_keywords_to_check <- readLines("voyage.txt") # List of keywords to check
mes_keywords_to_check <- as.character(mes_keywords_to_check)
install.packages(“SEMrushR”)
图书馆(SEMrushR)

mes\u关键字\u to\u check嗯,您需要将结果添加到某种容器中。例如,添加到列表中。到目前为止,您只有一个对象,其中填充了来自循环最近一次迭代的数据

results = list()

for (i in 1:length(mes_keywords_to_check)) {
  test_keyword <- as.character(mes_keywords_to_check[i])
  df_test_2 <- keyword_overview_all(test_keyword, "fr","API KEY NUMBER")  ##keyword_overview_all is the function from the Semrush package
  results[[i]] <- df_test_2 
}
results=list()
用于(i/1:长度(mes\u关键字\u至\u检查)){

test_keyword看起来您正在使用
readLines(“voyage.txt”)
读取文本文件,该文件将返回每一行的列表。然后这些行将被传递到for循环。下面将这些行转换为单词。有多种方法,但下面使用循环中的循环来继续使用for()如果你喜欢逐行逐字搜索,它还使用正则表达式对非字母数字进行拆分,这样你就可以省略由标点符号限定的单词

mes_lines <- readLines("voyage.txt") # List of keywords to check
mes_lines <- as.character(mes_lines)

search_results <- list()
for (i in 1:length(mes_lines)) {
  mes_keywords_to_check <- unlist(strsplit(mes_lines,"[^[:alnum:]]"))
  mes_keywords_to_check <- mes_keywords_to_check[nchar(mes_keywords_to_check)>0]

  if (length(mes_keywords_to_check)==0) next

  for (w in 1:length(mes_keywords_to_check))
  {
    test_keyword <- as.character(mes_keywords_to_check[w])
    print(paste0("Checking word=",test_keyword))
    df_test_2 <- keyword_overview_all(test_keyword, "fr","API KEY NUMBER")  ##keyword_overview_all is the function from the Semrush package
    search_results <- append(search_results,df_test_2)
  }

}

mes\u lines感谢您指出了正确的方向

以下是我所做的,这是有效的:

final_result <- data.frame()
mes_keywords_to_check <- readLines("voyage.txt") 
mes_keywords_to_check <- as.character(mes_keywords_to_check)

for (i in 1:length(mes_keywords_to_check)) {
  test_keyword <- as.character(mes_keywords_to_check[i])
    df_test_2 <- keyword_overview_all(test_keyword, "fr","API KEY")  
  final_result <- rbind(final_result,df_test_2)
}

final\u result check
mes\u keywords\u to\u check
在循环之前:它是否包含所有关键字?//检查
length(mes\u keywords\u to\u check)
如果您发现建议有助于确定您的解决方案,请在建议旁边打一个绿色复选标记。
mes_lines <- readLines("voyage.txt") # List of keywords to check
mes_lines <- as.character(mes_lines)

search_results <- list()
for (i in 1:length(mes_lines)) {
  mes_keywords_to_check <- unlist(strsplit(mes_lines,"[^[:alnum:]]"))
  mes_keywords_to_check <- mes_keywords_to_check[nchar(mes_keywords_to_check)>0]

  if (length(mes_keywords_to_check)==0) next

  for (w in 1:length(mes_keywords_to_check))
  {
    test_keyword <- as.character(mes_keywords_to_check[w])
    print(paste0("Checking word=",test_keyword))
    df_test_2 <- keyword_overview_all(test_keyword, "fr","API KEY NUMBER")  ##keyword_overview_all is the function from the Semrush package
    search_results <- append(search_results,df_test_2)
  }

}
final_result <- data.frame()
mes_keywords_to_check <- readLines("voyage.txt") 
mes_keywords_to_check <- as.character(mes_keywords_to_check)

for (i in 1:length(mes_keywords_to_check)) {
  test_keyword <- as.character(mes_keywords_to_check[i])
    df_test_2 <- keyword_overview_all(test_keyword, "fr","API KEY")  
  final_result <- rbind(final_result,df_test_2)
}