[R-br] modifica dataframe

Gustavo Henrique de Carvalho gustavo.bio em gmail.com
Terça Maio 31 21:24:23 BRT 2011


Não sei pra que colar esse negócio grotesco aqui, mas a primeira forma
que me veio à cabeça foi essa:

bleh <- function(x) {unique(c(seq(0, x, by = 0.5), x))}
data.frame(lapply(dados, rep, unlist(lapply(sapply(dados$ht, bleh),
length))), hi = unlist(sapply(dados$ht, bleh)))

2011/5/31 Benilton Carvalho <beniltoncarvalho em gmail.com>
>
> enqto o henrique nao responde, algo como o seguinte pode lhe servir:
> hi = mapply(seq, 0.1, dados[['ht']], .5)
> idx = mapply(rep, 1:length(hi), sapply(hi, length))
> dados2 = cbind(dados[unlist(idx),], hi=unlist(hi))
> b
>
> 2011/5/31 Samuel Carvalho <samukajm em yahoo.com.br>
>>
>> Boa noite caros(a) senhores(as) membros
>> Por gentileza alguém poderia me auxliar em um código que a princípio parece ser simples mas nao consegui uma solução
>> Abaixo mostro o codigo e a seguir venho comentando
>> ### Codigo R
>> dados<-data.frame(idfuste=seq(1,5), dap=c(8.5, 11.0, 10.5, 17.5, 12.5),
>> ht=c(10, 13, 12.5, 18, 14))
>> dados
>> dados$hi<-seq(0.1, dados$ht, by=0.5)
>> ###
>> O que preciso é gerar uma sequencia para cada "idfuste" de 0.1 até a "ht" que corresponde aquele "idfuste", replicando também cada observação
>> para cada "idfuste". A sequencia é de 0.5 em 0.5 até a altura total da árvore - 1 pois esta pode nao ser um número inteiro dividido por 0.5 sendo que a ultima observação de cada idfuste deve ser igual ao valor de ht
>> Em resumo queria um data.frame de saída a partir dos dados de entrada, nesta estrutura
>> idfuste dap ht hi
>> 1 8,5 10 0
>> 1 8,5 10 0,5
>> 1 8,5 10 1
>> 1 8,5 10 1,5
>> 1 8,5 10 2
>> 1 8,5 10 2,5
>> 1 8,5 10 3
>> 1 8,5 10 3,5
>> 1 8,5 10 4
>> 1 8,5 10 4,5
>> 1 8,5 10 5
>> 1 8,5 10 5,5
>> 1 8,5 10 6
>> 1 8,5 10 6,5
>> 1 8,5 10 7
>> 1 8,5 10 7,5
>> 1 8,5 10 8
>> 1 8,5 10 8,5
>> 1 8,5 10 9
>> 1 8,5 10 9,5
>> 1 8,5 10 10
>> 2 11 13,2 0
>> 2 11 13,2 0,5
>> 2 11 13,2 1
>> 2 11 13,2 1,5
>> 2 11 13,2 2
>> 2 11 13,2 2,5
>> 2 11 13,2 3
>> 2 11 13,2 3,5
>> 2 11 13,2 4
>> 2 11 13,2 4,5
>> 2 11 13,2 5
>> 2 11 13,2 5,5
>> 2 11 13,2 6
>> 2 11 13,2 6,5
>> 2 11 13,2 7
>> 2 11 13,2 7,5
>> 2 11 13,2 8
>> 2 11 13,2 8,5
>> 2 11 13,2 9
>> 2 11 13,2 9,5
>> 2 11 13,2 10
>> 2 11 13,2 10,5
>> 2 11 13,2 11
>> 2 11 13,2 11,5
>> 2 11 13,2 12
>> 2 11 13,2 12,5
>> 2 11 13,2 13
>> 2 11 13,2 13,2
>> e assim por diante para todos idfustes
>> Desde já agradeço
>> Para quem é da area florestal estou tentando estruturar uma base de cubagem a partir de dados de parcelas
>> Abraço e boa noite a todos
>> Att,
>> Samuel
>>
>> ====================================
>> Samuel P. C. Carvalho
>> Mestre em Ciências Florestais [UFLA]
>> Doutorando em Recursos Florestais [ESALQ/USP]
>> =============================================
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>
>
>
>
> --
> Successful people ask better questions, and as a result, they get better answers. (Tony Robbins)
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>


Mais detalhes sobre a lista de discussão R-br