R: Как создать функцию с операторами if для поиска файла по нескольким путям - PullRequest
0 голосов
/ 18 апреля 2020

Код ниже - это то, что я обычно использую в Python. Теперь я хочу сделать это в R, но я не могу найти пример документации операторов if в def. Это вообще возможно?

def loadfile():
    if 'test.csv' in os.listdir():
        return 'test.csv'
    elif os.path.exists('../../project1/data/'):
        return '../../project1/data/test.csv'
    elif os.path.exists('../../../project1/data/'):
        return '../../../project1/data/test.csv'

Большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Если операторы построены, как в следующем примере в R:

if (condition) {
   statement
} else if (condition) {
 ...
} else {
 ... 
}
0 голосов
/ 18 апреля 2020

Вы можете использовать file.exists и dir.exists для своих проверок.

Для операторов if необходимо заключить круглые скобки вокруг логического предложения и фигурные скобки для тела. Вам не нужно указывать return(value) напрямую, потому что R автоматически возвратит последнюю переменную, оцененную в функции.

Объединение его:

loadfile <- function() {
  if (file.exists('test.csv')) {
    'test.csv'
  } else if (dir.exists('../../project1/data')) {
    '../../project1/data/test.csv'
  } else if (dir.exists('../../../project1/data')) {
    '../../../project1/data/test.csv'
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...