Простое решение R base - это использование match
:
dat$group <- df$x[match(dat$z,df$y)]
dat
z group
1 abl A
2 abl A
3 abl A
4 abl A
5 rtg A
6 rtg A
7 jaf A
8 zfw <NA>
9 zfw <NA>
10 zfw <NA>
11 thk C
Для файла
File.Exists(string)
Для каталога
Directory.Exists(string)
Примечание: При многократном использовании объекта, необходимо рассмотреть использование класса FileInfo по сравнению со статическим классом Файла. Статические методы класса Файла делают возможную ненужную проверку защиты каждый раз.
FileInfo - DirectoryInfo - Файл - Каталог
FileInfo fi = new FileInfo(fName);
if (fi.Exists)
//Do stuff
ИЛИ
DirectoryInfo di = new DirectoryInfo(fName);
if (di.Exists)
//Do stuff
if(System.IO.File.Exists(fileOrDirectoryPath))
{
//do stuff
}
Это должно добиться цели!
Если это не может быть новый каталог, можно просто проверить, существует ли это.
Похоже, что Вы могли также использовать Путь. GetInvalidPathChars для проверки на недопустимые символы.
Предыдущий ответ корректен относительно проверки, существует ли данный файл или каталог. Класс Пути также содержит много функций, которые полезны для проверки или управления различными компонентами пути.
Вы могли бы также хотеть полагать, что допустимый путь сам по себе не на 100% допустим. Если пользователь обеспечивает C:\windows\System32, или к CD-приводу операционная система могла бы выдать исключение при попытке записать.