0

对于数据框:

exampleDF <- structure(list(val1 = structure(c(1L, 2L, 1L, 3L), .Label = c("MX", 
"SS", "VF"), class = "factor"), var2 = c(1, 2, 3, 4)), .Names = c("val1", 
"var2"), row.names = c(NA, -4L), class = "data.frame")

而不是这样做:

ddply(exampleDF, .(val1), summarize, sum(as.numeric(var2)))

是否可以对调用进行参数化ddply(如下所示,尽管我尝试过但没有用):

colname <- 'var2'
ddply(exampleDF, .(val1), summarize, sum(as.numeric(colname)))

这导致..

  val1 ..1
1   MX  NA
2   SS  NA
3   VF  NA
Warning messages:
1: In eval(expr, envir, enclos) : NAs introduced by coercion
2: In eval(expr, envir, enclos) : NAs introduced by coercion
3: In eval(expr, envir, enclos) : NAs introduced by coercion

我们必须调用ddply数据框中的一组列,并为每个结果生成图ddply。因此,我们希望参数化ddply调用,而不是对 n 列重复同一行

4

1 回答 1

2

这实际上是一个挑战summarize,不是ddplyparse您可以尝试使用and做一些事情eval,但总的来说这不是一个好主意。我会做类似的事情:

colname <- 'var2'
ddply(exampleDF, .(val1), function(sub_dat) sum(as.numeric(sub_dat[[colname]])))

你说你想创建多个这样的图,但是,我几乎总是能够使用 facetting in 创建这样一组图ggplot2(由与 相同的作者创建plyr)。参见例如 和 的facet_wrap文档facet_grid

于 2012-10-17T05:17:01.720 回答