Ответ 1
Ваш примерный код не работает для меня, но вы, вероятно, ищете либо basename
, либо dirname
:
> getwd()
[1] "C:/cvswork/data"
> basename(getwd())
[1] "data"
> dirname(getwd())
[1] "C:/cvswork"
Единственное решение, с которым я столкнулся, - это использовать регулярные выражения и рекурсивно заменить первый каталог, пока не получите слово без косой черты.
gsub("/\\w*/","/",gsub("/\\w*/","/",getwd()))
Есть ли что-то немного более элегантное? (и более портативный?)
Ваш примерный код не работает для меня, но вы, вероятно, ищете либо basename
, либо dirname
:
> getwd()
[1] "C:/cvswork/data"
> basename(getwd())
[1] "data"
> dirname(getwd())
[1] "C:/cvswork"
Если вы не знали basename
(и я этого не сделал), вы могли бы использовать это:
tail(strsplit(getwd(), "/")[[1]], 1)