1

これは機能します。

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'))
4

2 に答える 2

2
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, ...)
}
于 2011-11-17T02:25:47.290 に答える
2

Michael が示すように特定の列を参照するか、式を手動で貼り付けることもできます。

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

fun(algae,2,4)
于 2011-11-17T02:29:39.440 に答える