And*_*iță 1 substring r character strsplit
假设我在 R 中使用list.files()获得了下一个向量:
paths <- c("/home/user/myfolder/ERA/amsterdam/amsterdam1.nc", "/home/user/myfolder/ERA/amsterdam/amsterdam2.nc",
"/home/user/myfolder/CLMcom/HadCruz/run1/paris/paris1.nc", "/home/user/myfolder/CLMcom/HadCruz/run1/paris/paris2.nc",
"/home/user/myfolder/CNRM/CLMcom/rcp85/run1/helsinki/helsinki1.nc")
nchar(paths)
[1] 47 47 55 55 63
Run Code Online (Sandbox Code Playgroud)
如您所见,矢量路径确实具有不同大小的对象。
我想从路径中获取包含所有对象但没有内部文件名的新向量,例如:
> new_paths
[1] "/home/user/myfolder/ERA/amsterdam/"
"/home/user/myfolder/ERA/amsterdam/"
[3] "/home/user/myfolder/CLMcom/HadCruz/run1/paris/"
"/home/user/myfolder/CLMcom/HadCruz/run1/paris/"
[5] "/home/user/myfolder/CNRM/CLMcom/rcp85/run1/helsinki/"
Run Code Online (Sandbox Code Playgroud)
我需要这个,因为我想创建一个循环,其中对于向量 new_paths中的每个i,我将使用system运行一个终端命令
我知道strsplit有可能,但是,我不是在 R 中操作文件名的专家。有人知道这种可能性吗?
为此,您可以dirname直接使用函数
dirname(paths)
#[1] "/home/user/myfolder/ERA/amsterdam"
#[2] "/home/user/myfolder/ERA/amsterdam"
#[3] "/home/user/myfolder/CLMcom/HadCruz/run1/paris"
#[4] "/home/user/myfolder/CLMcom/HadCruz/run1/paris"
#[5] "/home/user/myfolder/CNRM/CLMcom/rcp85/run1/helsinki"
Run Code Online (Sandbox Code Playgroud)