根据R中数据框的匹配值重命名文件
Rename files based on a matching value from datafrom in R
假设我有 3 个文件名为
JohnDoe, PeterGynn, JolieHope
在一个文件夹中,现在我想根据数据框 df1 的匹配值更改文件名。
df1 <- structure(list(employee = c("John Doe", "Peter Gynn", "Jolie Hope"), salary = c(21000, 23400, 26800)), row.names = c(NA, -3L), class = c("data.table", "data.frame"))
所以最终的文件名是
21000, 23400, 26800
基本上,我想将文件名从匹配的员工列更改为薪水列。我可以在 bash
内完成
find . -type f -name "*.txt" -printf "/%P\n" | while read FILE ; do DIR=$(dirname "$FILE" );\
但不知道在 r
有什么帮助吗?提前致谢
这是手术前
setwd('~/Desktop/Stack/')
list.files()
输出:
'JohnDoe''JolieHope''PeterGynn'
我是这样做的;
library(dplyr)
df1 <- structure(list(employee = c("John Doe", "Peter Gynn", "Jolie Hope"), salary = c(21000, 23400, 26800)), row.names = c(NA, -3L), class = c("data.table", "data.frame"))
df1 %>%
mutate(filename=gsub(' ','',employee)) -> df2
for(i in 1:nrow(df2)){
old_name <- df2[i]$filename
new_name <- as.character(df2[i]$salary)
file.rename(from=old_name,to = new_name)
}
这是在
之后
list.files()
'21000''23400''26800'
假设我有 3 个文件名为
JohnDoe, PeterGynn, JolieHope
在一个文件夹中,现在我想根据数据框 df1 的匹配值更改文件名。
df1 <- structure(list(employee = c("John Doe", "Peter Gynn", "Jolie Hope"), salary = c(21000, 23400, 26800)), row.names = c(NA, -3L), class = c("data.table", "data.frame"))
所以最终的文件名是
21000, 23400, 26800
基本上,我想将文件名从匹配的员工列更改为薪水列。我可以在 bash
内完成find . -type f -name "*.txt" -printf "/%P\n" | while read FILE ; do DIR=$(dirname "$FILE" );\
但不知道在 r
有什么帮助吗?提前致谢
这是手术前
setwd('~/Desktop/Stack/')
list.files()
输出:
'JohnDoe''JolieHope''PeterGynn'
我是这样做的;
library(dplyr)
df1 <- structure(list(employee = c("John Doe", "Peter Gynn", "Jolie Hope"), salary = c(21000, 23400, 26800)), row.names = c(NA, -3L), class = c("data.table", "data.frame"))
df1 %>%
mutate(filename=gsub(' ','',employee)) -> df2
for(i in 1:nrow(df2)){
old_name <- df2[i]$filename
new_name <- as.character(df2[i]$salary)
file.rename(from=old_name,to = new_name)
}
这是在
之后list.files()
'21000''23400''26800'