Hello,

You can coerce the result to the input shape by assigning the dim attribute by hand.

string.ans <- sweep(m, c(2,3), stat, string.fun)
dim(string.ans) <- dim(m)
string.ans

Or put this in a function.

# An abbreviation and the complete function name
sweep.ch <- sweep.character <-
function(x, MARGIN, STATS, FUN="-", check.margin=TRUE, ...){
    result <- sweep(x, MARGIN, STATS, FUN, check.margin, ...)
    dim(result) <- dim(x)
    result
}

string.ans2 <- sweep.ch(m, c(2,3), stat, string.fun)
string.ans2


Hope this helps,

Rui Barradas

Em 04-08-2012 20:35, Peter Young escreveu:
Hi,

I would like to use sweep to "sweep out" proportions and confidence intervals for an 
array, however when I supply a function which returns a string (containing something like "9% 
(3-18%)") I get back a list instead of an array, here is a simplified example:

# example showing that sweep does not return an array with same dimensions as 
STATS as advertised

string.fun <- function(a, b) {

     paste(a, "-", b, sep="")

}

num.fun <- function(a, b) {

     a+b/100

}

m <- array(seq(1:24), dim = c(2,3,4))

stat <- array(seq(1:12), dim = c(3,4))

string.ans <- sweep(m, c(2,3), stat, string.fun)

dim(string.ans)

length(string.ans)

num.ans <- sweep(m, c(2,3), stat, num.fun)

dim(num.ans)

Although the contents are correct, strings.ans is a list while num.ans is an 
array. Help(sweep) says that the result of sweep should have the same 
dimensions as x, however when the result of the function is a string this is 
not the case.  How can I coerce the result of the function to cause sweep to 
return an array as advertised?

thanks,

Peter

Peter Young, MPH

Surveillance Epidemiologist

CDC Mozambique


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to