Ошибка в eval (expr, envir, enclos): почему он рассматривает строку как функцию - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть переменная PA_coltypes, заданная этой командой.

> PA_coltypes <- pa.get_coltypes(PA)

Теперь, если вы хотите увидеть его содержимое здесь:

> PA_coltypes
                                    coltypes
1                CD_TY_TT  = col_character()
2  DA_TT  = col_date(format='%Y%m%d-%H%M%S')
3                   A_ARR  = col_character()
4                   M_ARR  = col_character()
5                  CD_ETS  = col_character()
6                   CD_SI  = col_character()
7                  CD_EFS  = col_character()
8             IDT_ETT_CTR  = col_character()
9             NO_PCI_RCCL  = col_character()
10             CD_DVS_ORI  = col_character()
11              CD_NOR_CG  = col_character()
12                  CD_BT  = col_character()
13             NO_STR_CPB  = col_character()
14             NO_STR_RPQ  = col_character()
15             CD_LET_CPT  = col_character()
16                    MT_DVS  = col_double()
17                    MT_EUR  = col_double()
18         NO_CTR_MTR_FUS  = col_character()
19                CD_PCEC  = col_character()
20         CD_CRV_CIA_ORI  = col_character()
21             CD_TY_PCEC  = col_character()

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

> eval(parse(text=paste("cols (",toString(PA_coltypes$coltypes),")")))

Этобыла показана ошибка

Ошибка в eval (expr, envir, enclos): не удалось найти функцию "cols"

Это говорит о том, что cols является функцией, которая являетсянеправильно.

Как устранить эту ошибку, пожалуйста?

1 Ответ

0 голосов
/ 07 декабря 2018

С eval docs :

eval вычисляет аргумент expr в среде, заданной envir, и возвращает вычисленное значение.Если envir не указан, то по умолчанию используется parent.frame () (среда, в которой был выполнен вызов eval).

parse возвращает выражение expression(cols (..., которое evalпытается оценить.Если R видит cols(args), это выглядит как функция, поэтому R пытается найти ее, но не может, и выдает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...