Likan Zhan

R 中跟路径有关的几个函数

战立侃 · 2018-06-29

  1. ‘file.path()’ 根据软件操作平台,把一系列成分组成一个在该平台下合法的路径。如果Windows系统中路径分隔符是反斜杠’\‘,而苹果系统下路径分隔符是斜杠’/’。例如,博主的系统是mac,所以该命令生成的路径是用斜杠连接的:
(path <- file.path("~", "R", "car"))
## [1] "~/R/car"
  1. ‘dir.exists()’ 用来判断某个路径是否存在。例如,因为我把 ‘car’ 这个软件包安装在了上述路径中,所以上述路径是存在的,所以我们运行下面的命令会得到一个TRUE的结果
dir.exists(path)
# dir.create(path) # 如果不存在,我们可以用该命令创建一个路径
## [1] TRUE
  1. ‘path.expand(path)’ 把一个路径转化为完成的路径,即把一个包含波浪线 ‘~’ 的路径替换当前用户所在路径。
Sys.getenv("HOME")
(path2 <- path.expand(path))
dir.exists(path2)
## [1] "/Users/lzhan"
## [1] "/Users/lzhan/R/car"
## [1] TRUE
  1. ‘dirname(path)’ 保留路径中除掉最底层成分的所有成分。如果路径中只有一层,则返回 ‘.’
dirname(path)
## [1] "/Users/lzhan/R"
  1. ‘basename(path)’ 只保留路径中最底层的一个成分
basename(path)
## [1] "car"
  1. `normalizePath(path)’ 把路径转化为该平台的标准格式。如果原始路径是一个快捷方式,那么标准化路径则指向该文件的实际路径。
(rhome <- R.home())
normalizePath(rhome)
## [1] "/Library/Frameworks/R.framework/Resources"
## [1] "/Library/Frameworks/R.framework/Versions/3.5/Resources"