R 如何根据文件名的ID重命名文件名

R 如何根据文件名的ID重命名文件名,r,data-analysis,data-manipulation,R,Data Analysis,Data Manipulation,我是一个乞丐与R编程。我下载了很多照片,它们的ID是名字。例如,图片“senador588”、“senador3”、“senador16”等等。每张图片显示一名巴西参议员。我需要的是名字而不是身份证 我还有一个数据框,它只显示ID(ID\u senador)和name(name\u lower) 代码的第一部分将下载所有图片: 库(data.table) 图书馆(rvest) 图书馆(lubridate) 图书馆(stringr) 图书馆(dplyr) 图书馆(RCurl) 库(XML) 图书馆

我是一个乞丐与R编程。我下载了很多照片,它们的ID是名字。例如,图片“senador588”、“senador3”、“senador16”等等。每张图片显示一名巴西参议员。我需要的是名字而不是身份证

我还有一个数据框,它只显示ID(ID\u senador)和name(name\u lower)

代码的第一部分将下载所有图片:
库(data.table)
图书馆(rvest)
图书馆(lubridate)
图书馆(stringr)
图书馆(dplyr)
图书馆(RCurl)
库(XML)
图书馆(httr)
图书馆(purrr)
#巴西所有参议员
url要使其更“R方式”,您可以使用apply系列中的一个函数。创建更改名称的函数,而不仅仅将其应用于创建的ID和名称列

changeName<- function(old_name, new_name){

  file.rename(paste0(old_name,'.jpg'), paste0(new_name,'.jpg'))
}


mapply(changeName, table_dfs_final$id_senador,table_dfs_final$name_lower)

changeNameIt不起作用,返回“FALSE”。我有81个id/名字,所以我不能在里面写每个,因为它出现在“id_senador=c(1,2,3)”和“name_lower=c('cuevas','asare','lumb)”@ana抱歉混淆。你可以去掉那部分。这只是在我的环境中创建一个名称示例,而不是一些随机名称来替换ID。在我的例子中,1,2,3是ID,字符串是参议员的名字。我编辑了我的答案。您可以运行代码,而不是循环ceate changeName函数和mapply。它在控制台中返回以下内容:“[1]FALSE FALSE FALSE[21]假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假。文件名没有改变:(@ana当然没有,因为我很笨,你的图片格式是jpg而不是png。现在试试……它仍然没有改变文件名……:(现在它返回“[1]真假假假假假假假假[18]假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假假
url <- "https://www25.senado.leg.br/web/senadores/em-exercicio/-/e/por-nome"

file <- read_html(url)
tables <- html_nodes(file, "table")
table1 <- html_table(tables[1], fill = TRUE, header = T)


table1_df <- as.data.frame(table1)[1]

table1_df_sem_acentuacao <- as.data.frame(iconv(table1_df$Nome, from = "UTF-8", to = "ASCII//TRANSLIT"))
colnames(table1_df_sem_acentuacao) <- "senador_lower"

table1_df_lower <- as.data.frame(tolower(table1_df_sem_acentuacao$senador_lower))
colnames(table1_df_lower) <- "senador_lower"

table_name_final <- as.data.frame(gsub(" ", "-", table1_df_lower$senador_lower))

id_split <- as.data.frame(gsub("https://www25.senado.leg.br/web/senadores/senador/-/perfil/", "senador", links_senador$links))

table_dfs_final <- cbind(table_name_final, id_split)
colnames(table_dfs_final)[1] <- "name_lower"
colnames(table_dfs_final)[2] <- "id_senador"
for (p in photos) {
  id <- basename(p)
  id <- gsub(".jpg$", "", id)
  name <- table_dfs_final$name_lower[match(id,         basename(table_dfs_final$id_senador))]
  fname <- paste0(table_dfs_final$id_senador, ".jpg")
  file.rename(p, fname)
  
  #optional
  cat("renaming", basename(p), "to", name, "\n")
}
changeName<- function(old_name, new_name){

  file.rename(paste0(old_name,'.jpg'), paste0(new_name,'.jpg'))
}


mapply(changeName, table_dfs_final$id_senador,table_dfs_final$name_lower)