прекратить гадать имена, когда корень похож - PullRequest
0 голосов
/ 11 мая 2018

Есть ли в R опция, которая запрещает возвращать значения из имен полей с одинаковым началом, если запрашиваемая вами не существует? Это вызывает у меня немало проблем, так как мои поля могут присутствовать или не присутствовать, и они имеют похожие корневые имена.

d <- data.frame(areallylongname = -99, y = 2, z = 0)

# How do I stop this returning a value
d$a 
#[1] -99

# it should return NULL like this
d$jjj 
# NULL

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Если вы хотите избежать частичного сопоставления и вернуть ошибку, может сработать следующее. Тем не менее, это также сделает все другие предупреждения об ошибках.

options(warnPartialMatchDollar = TRUE, warn = 2)

# test
d$a

Ошибка в $.data.frame (д, а): (преобразовано из предупреждения) Частичное совпадение 'a' с 'areallylongname' во фрейме данных

0 голосов
/ 11 мая 2018

Вы можете переключиться на обозначение в скобках, которое требует точных имен столбцов:

> d['a']
Error in `[.data.frame`(d, "a") : undefined columns selected

> d['y']
  y
1 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...