我有一张我拍摄地块图像的字段地图。这些照片是从左到右拍摄的,像这样蛇形;所以,从101,118,119,136,137,138,135,120,117,102,103,116等等。这些照片也是按这个顺序排列的;但是,它们的名称不同,与地块不对应,文件名看起来像这样100_498,100_499,100_500,100_501。所以为了进一步的细节,地块101等于文件100_498,地块118等于文件100_499等等…我需要能够根据他们在字段中拍摄照片的方式将文件重命名为下面的地形图对应的文件。如果我用我的代码重命名它们,它会从上到下,因为它是蛇形的,图片将在文件夹中按顺序排列。
现在我需要重新做R代码……有什么建议吗???我需要重命名这些文件,使其与此图相对应。
这是我的代码,如果他们会从下到上获取数据并蛇形......101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112 等
Plot map
109 110 127 128 145
108 111 126 129 144
107 112 125 130 143
106 113 124 131 142
105 114 123 132 141
104 115 122 133 140
103 116 121 134 139
102 117 120 135 138
101 118 119 136 137
f <-list.files(pattern="*.JPG") #imports files names
head(f) #first 6 rows of data
new_names <- paste("Plot_", #create new file name
formatC(seq(length(file_names)), #writes the number in
#sequential order
width=2,flag="0"),
".JPG",sep="")
head(new_names) #first 6 rows of data
file.rename(from=f, to=new_names) #replaces old file name with new file name
list.files(pattern=".JPG") #check to make sure it was done
下面的函数创建一个查找表,将一个方向的Z字形转换为另一个方向上的Z字形。。。
zigzag <- function(n=45,r=9){ #n=number of plots, r=number of rows
#create desired new order as a matrix
new <- matrix(1:n,nrow=r)
even <- 2*seq_len(ncol(new)/2)
new[,even] <- apply(new[,even],2,rev)
#create old order as a matrix
old <- t(matrix(1:n,ncol=r))
even <- 2*seq_len(nrow(old)/2)
old[even,] <- t(apply(old[even,],1,rev))
#reduce to vectors and return look-up table as a dataframe
df <- data.frame(old=as.vector(old),new=as.vector(new))
return(df)
}
然后,您可以按如下方式重命名您的文件…
lookup <- zigzag() #create lookup table
oldfiles <- paste0("100_",497+lookup$old,".JPG")
newfiles <- paste0("Plot_",100+lookup$new,".JPG")
file.rename(oldfiles,newfiles)
head(oldfiles,10)
[1] "100_498.JPG" "100_507.JPG" "100_508.JPG" "100_517.JPG" "100_518.JPG" "100_527.JPG" "100_528.JPG" "100_537.JPG"
[9] "100_538.JPG" "100_499.JPG"
head(newfiles,10)
[1] "Plot_101.JPG" "Plot_102.JPG" "Plot_103.JPG" "Plot_104.JPG" "Plot_105.JPG" "Plot_106.JPG" "Plot_107.JPG"
[8] "Plot_108.JPG" "Plot_109.JPG" "Plot_118.JPG"
以下函数将 fileno
转换为您要查找的 100_498
格式。此示例适用于您的特定情况,但如果您需要更普遍地使用它,您可能希望对其进行参数化。
filecoords <- function(fileno){
fcol <- 498 + (fileno - 101) %/% 9
frow <- ifelse(fcol %% 2, 108-((fileno-101) %% 9),100+((fileno-101) %% 9))
return(paste(frow, fcol, sep="_"))
}
filecoords(c(101, 105, 124))
[1] "100_498" "104_498" "105_500"
逆函数也可能有用。它接受一个字符串,例如“104_498”,并使用绘图地图中的数字返回文件名“Plot_nnn”。
filenos <- function(coord){
coords <- as.numeric(unlist(strsplit(coord,"_")))
base <- 9*(coords[2]-498)+101
fileno <- base+ifelse(coords[2] %% 2,8-((coords[1]-100) %% 9),(coords[1]-100) %% 9)
return(paste0("Plot_",fileno))
}
filenos("105_500")
[1] "Plot_124"
所以你可以用类似这样的东西来重命名你的文件...
oldfiles <- list.files(pattern="\\.JPG") #get list of files
oldfilestems <- gsub("\\.JPG","",oldfiles) #remove the suffix
newfilestems <- sapply(oldfilestems,filenos) #assumes your old file stems are "100_498" format
newfiles <- paste0(newfilestems,".JPG") #add the suffix
file.rename(oldfiles,newfiles) #rename
我有一个数据框,其中第一列(x)是1:12的数字,第二列(y)包含我要绘制的数字。 我想创建一个y轴与12个月的plot_ly图。我想将x轴标记为'Jan'、'Feb'、'Mar、…'Dec'。 我试过: 这里,x轴标记为0,1,2,…12。 我还尝试在数据框中创建第三列,其中第三列包含c(“一月”,“二月”,...“十二月”)。当我这样做时: x轴按字母顺序标记为“四月”、“八月”、“十二月”、
文件重命名 文件重命名 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:更改名称 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在
我一直在使用PDF文件中的命名目标来打开文件中特定位置的PDF文件。负责生成PDF文档的团队使用工具从图书标记自动生成命名目的地,因此命名目的地的名称往往类似于*9\u Glossary*或*Additional\u Information*。我们被要求用多种语言制作相同的文档。我预计我们将收到多种外语的PDF文档,在相同的位置带有书签,但图书标记的名称当然将使用这些其他语言,自动生成的命名目的地
问题内容: 因此,我具有以下结构: 我运行了一个命令来调整它们的大小 现在我的目录看起来像这样 第一个问题是,我该如何重命名文件,以便仅拥有一个扩展名。不是两个。(基本上,我该如何清除最初的错误)? 第二个问题是,将来使用xargs,如何将模拟文件的扩展名更改为第二个命令? 问题答案: 我如何重命名文件,以便我只能拥有一个扩展名。 将来,使用xargs,如何将模拟文件的扩展名更改为第二个命令? 据
我想在sqlite中重命名列。我为一些列创建了两个带空格的单词标题,这些标题稍后会产生问题(例如而不是。 以前,这似乎是不可能的链接。但是几个月前的一个版本似乎包含了选项链接。 然而,这似乎不起作用。 查询将生成以下错误消息: 我为列名添加了引号,以防出现空格问题: 但也会出现同样的错误。 此解决方案提示重命名是可能的。但只重命名表(这很好),而不重命名列。
我正在进行一个多模块Maven3项目的重构和维护过程,我需要重命名一些工件的groupId和artifactId。 有办法重命名groupId和artifactid吗? 我知道我可以使用sed之类的查找和替换工具,但我想知道除了groupId和artifactid之外,是否还有类似versions-maven-plugin(例如:)的mojo。
问题内容: 我想批量重命名目录中的多个文件,以便从文件名中删除前面的数字和连字符。 如何使用linux命令执行此操作? 问题答案: 这应该使它: 它从块的开头(即数字)开始多次,然后连字符并将其从文件名中删除。 如果不在您的计算机中,则可以使用循环和: 测试 要么: