
melt_check <- function (data, id.vars, measure.vars) { varnames <- names(data) if (!missing(id.vars) && is.numeric(id.vars)) id.vars <- varnames[id.vars] if (!missing(measure.vars) && is.numeric(measure.vars)) measure.vars <- varnames[measure.vars] if (!missing(id.vars)) { unknown <- setdiff(id.vars, varnames) if (length(unknown) > 0) { stop("id variables not found in data: ", paste(unknown, collapse = ", "), call. = FALSE) } } if (!missing(measure.vars)) { unknown <- setdiff(measure.vars, varnames) if (length(unknown) > 0) { stop("measure variables not found in data: ", paste(unknown, collapse = ", "), call. = FALSE) } } if (missing(id.vars) && missing(measure.vars)) { categorical <- sapply(data, function(x) class(x)[1]) %in% c("factor", "ordered", "character") id.vars <- varnames[categorical] measure.vars <- varnames[!categorical] message("Using ", paste(id.vars, collapse = ", "), " as id variables") } if (missing(id.vars)) id.vars <- varnames[!(varnames %in% c(measure.vars))] if (missing(measure.vars)) measure.vars <- varnames[!(varnames %in% c(id.vars))] list(id = id.vars, measure = measure.vars) } From: luc.souza@usp.br Sent: Wednesday, June 04, 2014 5:09 PM To: r-br@listas.c3sl.ufpr.br Subject: Re: [R-br] várias linhas em um única coluna Obrigado. Mas está faltando a função melt_check abs Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutor em Agrometeorologia - ESALQ/USP tel: (19) 98160-7068 -------------------------------------------------------------------------------- De: "Robert Iquiapaza" <rbali@ufmg.br> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quarta-feira, 4 de Junho de 2014 17:00:03 Assunto: Re: [R-br] várias linhas em um única coluna A função melt para data frames: x=data.frame(rbind(runif(5), rbind(runif(5)))) t(x) meltdf <- function (data, id.vars, measure.vars, variable_name = "variable", na.rm = !preserve.na, preserve.na = TRUE) { if (!missing(preserve.na)) message("Use of preserve.na is now deprecated, please use na.rm instead") var <- melt_check(data, id.vars, measure.vars) if (length(var$measure) == 0) { return(data[, var$id, drop = FALSE]) } ids <- data[, var$id, drop = FALSE] df <- do.call("rbind", lapply(var$measure, function(x) { data.frame(ids, x, data[, x]) })) names(df) <- c(names(ids), variable_name, "value") df[[variable_name]] <- factor(df[[variable_name]], unique(df[[variable_name]])) if (na.rm) { df <- df[!is.na(df$value), , drop = FALSE] } rownames(df) <- NULL df } meltdf(x) Sds From: luc.souza@usp.br Sent: Wednesday, June 04, 2014 3:56 PM To: r-br@listas.c3sl.ufpr.br Subject: Re: [R-br] várias linhas em um única coluna Obrigado. Mas como não tenho o pacote instalado, tenho um problema. Sou func. público e o proxy não deixa eu baixar o pacote. Estou procurando uma solução para isso, através do R, mas não estou conseguindo. Conhece algo a respeito de liberação do proxy no R? Obrigado Lucas Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutor em Agrometeorologia - ESALQ/USP tel: (19) 98160-7068 ------------------------------------------------------------------------------ De: "Rodrigo Muniz" <uenf.rodrigo@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quarta-feira, 4 de Junho de 2014 15:49:27 Assunto: Re: [R-br] várias linhas em um única coluna Exatamente Lucas a função melt é do pacote Reshape. Att.. 2014-06-04 15:27 GMT-03:00 <luc.souza@usp.br>: Rodrigo, obrigado. Essa função melt é do pacote reshape? Lucas Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutor em Agrometeorologia - ESALQ/USP tel: (19) 98160-7068 -------------------------------------------------------------------------- De: "Rodrigo Muniz" <uenf.rodrigo@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Quarta-feira, 4 de Junho de 2014 15:08:27 Assunto: Re: [R-br] várias linhas em um única coluna Considere o seguinte exemplo e veja se da certo para os seus dados. x=data.frame(rbind(runif(5), rbind(runif(5)))) t(x) melt(x) Att.. 2014-06-04 14:27 GMT-03:00 <luc.souza@usp.br>: Prezados, tenho uma planilha com várias linhas. Gostaria de colocar os dados dessas várias linhas, em uma única coluna, um após o outro. como pode ser feito isso? Obrigado Lucas Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutor em Agrometeorologia - ESALQ/USP tel: (19) 98160-7068 -------------------------------------------------------------------------------- _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.