Как я могу указать аргументы по номерам столбцов в bwplot? - PullRequest
1 голос
/ 17 ноября 2011

Это работает.

ok <- function(data)
{
    lattice:::bwplot(size ~ mxPH, data=data)
}

> ok(algae)
## no error

Я бы хотел указать размер и mxPH по номерам столбцов.Однако следующее не сработало.

1-я попытка

aa <- function(data, n1, n2)
{
    names <- names(data) 
    lattice:::bwplot(names[n1] ~ names[n2], data=data)
} 

> aa(algae,2,4)
Warning message:
In function (x, y, box.ratio = 1, box.width = box.ratio/(1 + box.ratio),  :
  NAs introduced by coercion

2-я попытка (небольшая модификация 1-го)

bb <- function(data, n1, n2) 
{       
    names <- factor(names(data))
    lattice:::bwplot(names[n1] ~ names[n2], data=data)
} 

> bb(algae,2,4)
## no error

3-я попытка (небольшая модификация 2-го)

cc <- function(data, n1, n2)
{   
    names <- factor(names(data))
    lattice:::bwplot(deparse(substitute(names[n1])) ~ deparse(substitute(names[n2])), data=data)
}

> cc(algae,2,4)
Warning message:
In function (x, y, box.ratio = 1, box.width = box.ratio/(1 + box.ratio),  :
  NAs introduced by coercion


Данные

algae <- utils:::read.table('http://www.liaad.up.pt/~ltorgo/DataMiningWithR/DataSets/Analysis.txt',
         header=F,
         dec='.',
         col.names=c('season','size','speed','mxPH','mnO2','Cl','NO3','NH4','oPO4','PO4','Chla','a1','a2','a3','a4','a5','a6','a7'),
         na.strings=c('XXXXXXX'))

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Вы можете ссылаться на определенные столбцы, как демонстрирует Майкл, или вы также можете вставить формулу вместе:

fun <- function(dat,n1,n2){
    nms <- colnames(dat)
    f <- as.formula(paste(nms[n1],"~",nms[n2]))
    bwplot(f,data = dat)
}

fun(algae,2,4)
2 голосов
/ 17 ноября 2011
library(lattice)
bwplot.column <- function(data, n1, n2, xlab = NULL, ylab = NULL, ...)
{
  if (is.null(ylab)) {
    ylab <- names(data)[n1]
  }

  if (is.null(xlab)) {
    xlab <- names(data)[n2]
  }

  bwplot(data[,n1] ~ data[,n2], xlab = xlab, ylab = ylab, data = data, ...)
}
...