Как использовать переменные метки в R? - PullRequest
1 голос
/ 14 февраля 2012

У меня есть функция, которая принимает входные данные в качестве имени столбца dataframe как columnname~1.

. Dataframe состоит из около 50 столбцов, в которых я хочу повторить процесс, я могу

используйте цикл for для генерации имени столбца как символа, который, к сожалению, функция

не распознает.Разница только M1~1 (работает) против "M1"~1

Любые предложения приветствуются

Ответы [ 4 ]

4 голосов
/ 14 февраля 2012

Попробуйте:

as.formula(paste("M1","1",sep="~"))
4 голосов
/ 14 февраля 2012

Используйте «[[function?

datafrm[[M1]] ~ 1

». Эта функция будет интерпретировать символьное значение и преобразовывать его в значение языка. Или вы можете использовать функцию do.call. Лучшие ответы будут получены, еслиу нас есть специфика dataframe и функции.

3 голосов
/ 14 февраля 2012

Или в качестве альтернативы пасте вы можете использовать sprintf:

variablename = "M1"
as.formula(sprintf("%s ~ 1", variablename))
1 голос
/ 14 февраля 2012

Вы также можете использовать это:

substitute(columnname~1,list(columnname=as.name("M1")))

EDIT

Это также будет работать при замене «M1» на переменную, содержащую строку (M1 <- «M1»). </p>

...