我正在尝试在文件夹中使用.txt扩展名重命名文件,并在表的列中使用相应的名称列表。该表包含两个向量,第一个是文件夹中文件名的标题,第二个是我希望保留原始扩展名的实际名称。我可以使用文件重命名,但是如何在相应的行中将其替换为新名称?
我尝试过使用带有file.rename的循环,除了我的代码遍历每个文件夹中表中的所有新名称之外。不确定是否有R函数可以做到这一点。
library(dplyr)
library(stringr)
headers <- read.csv(file="/mnt/data/Development/Sequences/SampleSheet.csv", skip = 18, header = F, nrows =1, as.is = T)
sample.rows = read.csv(file="/mnt/data/Development/Sequences/SampleSheet.csv", skip = 19, header = F)
colnames(sample.rows) = headers
old.new.names <- select(sample.rows, Sample_Name, Description)
startingDir<-"/mnt/data/Development/Sequences"
tcr.sample <- list.files(path=startingDir, pattern="txt", full.names=TRUE )
new.names <- select(old.new.names, Description)
file.rename(list.files(tcr.sample, pattern = ".txt" replacement=new.names)
该文件夹中的文件具有通用名称:S01_S1.txt
,S02_S2.txt
等。我还有一个文件,其中包含带有2列的表。第一列通过前三个字符标识每个文件,例如S05,S06,... S45。第二列具有该行中文件的相应新名称,例如RK_ci1151_01,RK_ci1151_02,... RK_ci1151_Baseline。我正在尝试重命名文件,以便将名称更改为RK_ci1151_01.txt,RK_ci1151_02 ..等等。
我也得到了
Error in file.rename(tcr.sample, pattern=".txt", replacement=new.names) : unused arguments (pattern = ".txt, replacement=new.names)
消息。
答案 0 :(得分:0)
我认为您可以使用其他方法来实现文件重命名。如果CSV文件列出了所需的唯一文件名,并且它们与唯一的“分组”变量关联(在您的情况下,“ S01”与文件RK_ci1151_01,RK_ci1151_02,RK_ci1151_Baseline关联),则可以使用新名称来重新创建旧名称。换句话说,您可以用旧文件名的模式替换新文件名中“ _01.txt”,“ _ 02.txt”等之前的模式。然后将数据框的列用作from=
调用中的to=
和file.rename
参数。
### prep toy data
# create df with old and new names
df <- data.frame(old=paste0(rep(letters[1:3],each=3),
'_', rep(c(0:2),3), '.txt'),
new=paste0(rep(c('foo','bar','hello'),each=3),
'_', rep(c(0:2),3), '.txt'),
stringsAsFactors = F)
# write files with old names
for (i in 1:length(df$old)) {
write.table(NULL,df$old[i])
}
list.files(pattern='\\.txt')
[1] "a_0.txt" "a_1.txt" "a_2.txt" "b_0.txt" "b_1.txt" "b_2.txt" "c_0.txt" "c_1.txt" "c_2.txt"
# edit old names to match user code
df$old <- sub('_[0-9]\\.txt','',df$old)
> df
old new
1 a foo_0.txt
2 a foo_1.txt
3 a foo_2.txt
4 b bar_0.txt
5 b bar_1.txt
6 b bar_2.txt
7 c hello_0.txt
8 c hello_1.txt
9 c hello_2.txt
# separate new file names to join with old
df$join <- sub('.*(_[0-9]\\.txt)','\\1',df$new)
df$old1 <- paste0(df$old,df$join)
# rename
file.rename(df$old1, df$new)
list.files(pattern='\\.txt')
[1] "bar_0.txt" "bar_1.txt" "bar_2.txt" "foo_0.txt" "foo_1.txt" "foo_2.txt"
[7] "hello_0.txt" "hello_1.txt" "hello_2.txt"
答案 1 :(得分:0)
xgbc = xgb.XGBClassifier(**params)
ova_xgbc = OneVsRestClassifier(xgbc)
ova_xgbc.fit(X_train, y_train)
ova_preds = ova_xgbc.predict(X_val)