Add new packages installed
This commit is contained in:
49
elpa/ess-20180319.504/etc/other/S-spread/sprd-grd.s
Normal file
49
elpa/ess-20180319.504/etc/other/S-spread/sprd-grd.s
Normal file
@@ -0,0 +1,49 @@
|
||||
as.grade <- function(x)
|
||||
{
|
||||
if (inherits(x,"grade")) return(x)
|
||||
if (match("sum",dimnames(x)[[2]],0) == 0) {
|
||||
dx <- dim(x)
|
||||
dnx <- dimnames(x)
|
||||
if (length(dim(x)) == 2) {
|
||||
if (length(dnx) != 2) dimnames(x) <- list(NULL, 1:dx[2])
|
||||
tmp <- cbind(x,sum=0)
|
||||
}
|
||||
if (length(dim(x)) == 3) {
|
||||
dimnames(x) <- NULL
|
||||
tmp <- aperm(x,c(1,3,2))
|
||||
dim(tmp) <- c(dim(tmp)[1]*dim(tmp)[3], dim(tmp)[2])
|
||||
tmp <- cbind(tmp, sum=0)
|
||||
dim(tmp) <- (dx + c(0,1,0))[c(1,3,2)]
|
||||
tmp <- aperm(tmp,c(1,3,2))
|
||||
if (length(dnx) != 3) dnx <- list(NULL, 1:dx[2], NULL)
|
||||
dnx[[2]] <- c(dnx[[2]], "sum")
|
||||
dimnames(tmp) <- dnx
|
||||
}
|
||||
if (length(dim(x)) > 3) stop("grade requires 2d or 3d")
|
||||
}
|
||||
x <- as.spread(tmp)
|
||||
sum.col <- match("sum",dimnames(x)[[2]],0)
|
||||
tmp.expr <- paste(
|
||||
"x[,",
|
||||
sum.col,
|
||||
if (length(dim(x))==3) ",",
|
||||
"] <- apply(x[,",
|
||||
-sum.col,
|
||||
if (length(dim(x))==3) ",",
|
||||
"],",
|
||||
deparse(if (length(dim(x))==3) c(1,3) else 1),
|
||||
",sum)"
|
||||
)
|
||||
after(x)["sum"] <- parse(text=tmp.expr)
|
||||
class(x) <- c("grade", class(x))
|
||||
update.spread(x)
|
||||
}
|
||||
|
||||
expr.rc.grade <- function(x, acpab)
|
||||
{
|
||||
if (sapply(acpab,nchar)[[2]] == 0) {
|
||||
j <- -match("sum", dimnames(x)[[2]], 0)
|
||||
acpab[2] <- j
|
||||
}
|
||||
expr.rc.default(x,acpab)
|
||||
}
|
||||
Reference in New Issue
Block a user