Ответ 1
-
Частичное сопоставление работает только с уникальными исходными подпоследовательностями имен списков. Итак, например:
> l <- list(score=1, scotch=2) > l$core #only INITIAL subsequences NULL > l$sco #only UNIQUE subsequences NULL > l$scor [1] 1
-
Оба
[[
и$
выбирают один элемент списка. Основные отличия заключаются в том, что$
не позволяет вычислять индексы, тогда как[[
делает, и что частичное сопоставление разрешено по умолчанию с помощью оператора$
, но не с[[
. -
Эти операторы извлечения или замены исходят из S, хотя R ограничивает использование частичного соответствия, тогда как S по умолчанию использует частичное согласование в большинстве операторов.
В вашем примере, если CXCL1
и CXCL11
сосуществуют, и вы индексируете foo$CXCL1
, это не частичное совпадение и должно возвращать значение CXCL1
. Если нет, может быть, есть и другая проблема.
Я должен указать, [[
не позволяет частичное совпадение, поскольку по умолчанию начинается с версии R 2.7.0
и далее.