Boxplot - доступ к именам столбцов с помощью переменных - PullRequest
2 голосов
/ 27 октября 2011

Как я могу получить доступ к столбцу с помощью переменной, содержащей имя столбца?

Предположим, у нас есть фрейм данных DF с 3 столбцами: Var1 Var2 Var3 , гдеVar3 содержит числовые данные, а Var1 и Var2 содержат несколько факторов.

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

temp<-"Var3"
boxplot(DF[temp]) #(<--that works).

Если я использую тот же метод для получения боксплота для каждого фактора в Var2,это не:

boxplot(DF[temp]~DF$Var2) #(<-- does not work).

Как я могу заставить это работать?

Аннотация: Если я использую имя "Var3" напрямую, оно работает и показывает несколько коробочных графиков:

boxplot(DF$Var3~DF$Var2).

Ответы [ 3 ]

6 голосов
/ 27 октября 2011

Попробуйте использовать двойные скобки вместо одинарных скобок:

tmp1 <- 'Sepal.Width'
tmp2 <- 'Species'
boxplot( iris[[tmp1]] ~ iris[[tmp2]] )
1 голос
/ 27 октября 2011

Вы можете использовать paste для построения формулы, а затем преобразовать в формулу для вызова boxplot:

boxplot(as.formula(paste(temp,"Var2",sep="~")),DF)
1 голос
/ 27 октября 2011

Вы могли бы просто сделать это.Оператор with указывает boxplot искать переменные внутри DF, оператор get обращается к объекту с именем tmp.

with(DF, boxplot(get(tmp) ~ Var2))

Вот иллюстративный пример

tmp <- 'wt'
with(mtcars, boxplot(get(tmp) ~ cyl))

enter image description here

...