包含函数的R中的循环
我是R的新手,我想做一个循环,以返回关键字列表的搜索量(通过API调用) 下面是我使用的代码:包含函数的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
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 checkmes\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)
}