如何在R中的For循环中引用向量的子元素

如何在R中的For循环中引用向量的子元素,r,for-loop,vector,automation,element,R,For Loop,Vector,Automation,Element,我正试图改变雅虎财经的股票搜索数据。我正在尝试自动化一个web浏览器,为每只股票提供雅虎URL。我想用雅虎财经的ISIN代码 我使用的是一个简单的1行excel表格(csv文件),上面有一列股票名称,如: A B C 1 Apple 2 Google 3 Facebook 4 Amazon 5 Tesla 我已经复制了该网站的url。 我希望在向量的每个元素中复制url rm(list=ls()) cat("\014") dev.of

我正试图改变雅虎财经的股票搜索数据。我正在尝试自动化一个web浏览器,为每只股票提供雅虎URL。我想用雅虎财经的ISIN代码

我使用的是一个简单的1行excel表格(csv文件),上面有一列股票名称,如:

   A          B         C
1 Apple
2 Google
3 Facebook
4 Amazon
5 Tesla
我已经复制了该网站的url。 我希望在向量的每个元素中复制url

rm(list=ls())
cat("\014")
dev.off()

library(KeyboardSimulator)
Target_Names <- read.csv(file.choose(), header=F)
for (i in 1:nrow(Target_Names)){
  Name=as.character(Target_Names[i,1])
#Name= "Apple"
#Name="Facebook"
#Name="Google"

mouse.get_cursor()

mouse.move(904, 130, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
writeClipboard(Name)
keybd.press('Ctrl', hold = T)
keybd.press('v')
keybd.release('ctrl')
Sys.sleep(2)
mouse.move(1195,  125, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(5)
mouse.move(850, 60, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(2)
keybd.press('Ctrl', hold = T)
keybd.press('a')
keybd.release('ctrl')
Sys.sleep(2)
keybd.press('Ctrl', hold = T)
keybd.press('c')
keybd.release('ctrl')
Sys.sleep(2)

copdat[] <- read.delim("clipboard")
}
但一切都失败了

如果我使用代码

copdat[1]
copdat[2]
它是有效的,但我希望for循环的每个元素都使用它


我真的不了解向量或子元素以及如何获得它们。如果你也能解释一下,我将不胜感激。谢谢。

没关系,在StackOverflow上搜索了几个小时后,我找到了一个适合我的解决方案。稍后我将了解如何合并向量

这是为了向任何想要自动化工作的人展示。任何想要一列搜索结果的人,将其放入excel工作表的第一列,并将其保存为.CSV文件

通过搜索结果实现互联网自动化和网页浏览,然后获得他们想要的相应值,而不是一次又一次地这样做

# Clear screen RStudio
rm(list=ls())
cat("\014")
dev.off()

#Library for keyboard and mouse automation
library(KeyboardSimulator)

#Choose Excel CSV file with first Column data
Target_Names <- read.csv(file.choose(), header=F)

#define Vectors before for Loop so as to not override them
copdat<- vector()
copdat1 <- vector()

#'copying' for Loop ----
for (i in 1:nrow(Target_Names)){
  Name=as.character(Target_Names[i,1])

# Get co-ordinates of mouse on screen by running this code depending where your mouse is
mouse.get_cursor()

#Clicking on screen, surfing web etc to get data to copy ----
mouse.move(725, 122, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
writeClipboard(Name)
keybd.press('Ctrl', hold = T)
keybd.press('v')
keybd.release('ctrl')
Sys.sleep(2)
mouse.move(959, 121, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(5)
mouse.move(712,  58, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(2)
keybd.press('Ctrl', hold = T)
keybd.press('a')
keybd.release('ctrl')
Sys.sleep(2)

# the part of copying data
keybd.press('Ctrl', hold = T)
keybd.press('c')
keybd.release('ctrl')
Sys.sleep(2)

#Copying data to vectors described above and storing them
copdat1 <- read.delim("clipboard")
copdat<-append(copdat,copdat1)
}

#After 'copying' for loop ----

#Merge Vectors to create Data Frames etc.
#清除屏幕RStudio
rm(list=ls())
类别(“\014”)
发展主任()
#键盘和鼠标自动化库
库(键盘模拟器)
#选择包含第一列数据的Excel CSV文件

Target_名称“it all failed”的确切含义是什么?你有没有犯过什么错误?是否在循环之前初始化向量?类似于
copdat
[
是一个提取函数。当您输入
copdat[1]
时,您要求R提取对象的第一个元素(或为其赋值)您的代码尚未创建。您将收到一条错误消息。如前一条评论中所指出的,此对象需要首先存在。您可以通过输入
copdat来“动态”完成此操作。我将在第一行代码中显示CSV文件,如excel中所示。第一次迭代将搜索术语“苹果”,第二次搜索“谷歌”,第三次搜索“Facebook”等等。我想要的就是如何使向量copdat的第一个元素等于搜索词“Apple”的复制url,copdat的第二个元素等于搜索词“Google”的复制url“。我想要的只是一个一栏向量。我可以稍后通过查看stackoverflow或YouTube上创建数据帧的示例来创建数据库。我想要一个非常基本的一栏向量,供我学习,也供其他人在for循环中查看。”。
# Clear screen RStudio
rm(list=ls())
cat("\014")
dev.off()

#Library for keyboard and mouse automation
library(KeyboardSimulator)

#Choose Excel CSV file with first Column data
Target_Names <- read.csv(file.choose(), header=F)

#define Vectors before for Loop so as to not override them
copdat<- vector()
copdat1 <- vector()

#'copying' for Loop ----
for (i in 1:nrow(Target_Names)){
  Name=as.character(Target_Names[i,1])

# Get co-ordinates of mouse on screen by running this code depending where your mouse is
mouse.get_cursor()

#Clicking on screen, surfing web etc to get data to copy ----
mouse.move(725, 122, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
writeClipboard(Name)
keybd.press('Ctrl', hold = T)
keybd.press('v')
keybd.release('ctrl')
Sys.sleep(2)
mouse.move(959, 121, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(5)
mouse.move(712,  58, duration = 2, step_ratio = 0.01)
mouse.click(button = "left", hold = F)
Sys.sleep(2)
keybd.press('Ctrl', hold = T)
keybd.press('a')
keybd.release('ctrl')
Sys.sleep(2)

# the part of copying data
keybd.press('Ctrl', hold = T)
keybd.press('c')
keybd.release('ctrl')
Sys.sleep(2)

#Copying data to vectors described above and storing them
copdat1 <- read.delim("clipboard")
copdat<-append(copdat,copdat1)
}

#After 'copying' for loop ----

#Merge Vectors to create Data Frames etc.