====== Função join.frames ======
Arquivo da função: {{:bie5782:01_curso_atual:alunos:trabalho_final:amjeckel:funcao_join.frames.r|join.frames}}
#O objetivo desta função é construir uma matriz a partir de data frames com números diferentes de linha.
#A primeira coluna dos data frames deverá ser a variável de interesse, e o restante das colunas, os valores de observação de cada caso.
#A função irá organizar os dataframes levando em conta a variável de interesse.
join.frames<- function(path, na.zero=F, binary=F, transpose=T, file=F)
{
filenames<- list.files(path) #Objeto com o nome dos arquivos da pasta indicada
filelist<- lapply(filenames, read.delim) #Objeto tipo lista com todos os data.frames que estão na pasta indicada
frames<-Reduce(function(x,y) merge(x,y, all=TRUE), filelist) #Junta todos os arquivos de data.frame num arquivo só. Onde não houver dado de uma determinada linha em um dos data.frames, ele vai transformar colocar um NA.
#Verificar se existe algum nome repetido na variável de interesse
rownames(frames)<- frames[,1] #Coloca a variável de interesse que está na primeira linha como o nome das linhas.
frames<- frames[,-1] #Retira a primeira coluna, para deixar o data.frame apenas numérico
#Se o argumento na.zero=F, ele vai deixar NA. Se o na.zero=T, ele vai transformar os NAs em zero.
if(na.zero==T)
{
frames[is.na(frames)]<- 0 #Transforma NA em 0
}
#Se o argumento binary=F, ele vai deixar os valores que estão nos data.frames. Se binary=T, ele vai tranformar os NAs zero, deixar onde tem zero, e tranformar todas as posições que tem valor em 1.
if(binary==T)
{
frames[is.na(frames)]<- 0 #Transforma NA em 0
frames[frames>0] <- 1 #Transforma todos os valores acima de 0 em 1
}
#Se o argumento transpose=T, ele vai transpor o data.frame. Caso transpose=F, ele vai deixar o data.frame do jeito que está.
if(transpose==T)
{
frames<-t(frames) #Transpõe o data.frame
}
#Se o argumento file=NULL, ele vai liberar o data.frame na área de trabalho. Se file="path" ou "file.txt", gravará um arquivo .txt no arquivo indicado ou no diretório de trabalho ativo.
if(file==F)
{
return(frames) #Retorna na área de trabalho o data.frame gerado
}else
{
write.table(frames, file, sep="\t") #Salva o data.frame em um arquivo .txt no diretório ativo
}
}
====== Página do Help: join.frames ======
join.frames package:unknown R Documentation
Cria um único data frame a partir de outros data frames
Description:
Esta função cria um data.frame a partir de outros data.frames com diferentes números de linha de um diretório especificado. A primeira coluna de cada data.frame deve ser a variável de interesse, e as outras colunas, as observações de cada caso. Esta função irá organizar o data.frame baseado na primeira coluna de cada data.frame, que deverá ser a variável de interesse. Se em algum dos data.frames algum caso da variável de interesse não estiver presente, será colocado um NA.
Usage:
join.frames(path, na.zero=F, binary=F, transpose=F, file=F)
Arguments:
path diretório onde estão os arquivos .txt que serão lidos na função. Os arquivos serão lidos com a função read.delim().
na.zero se TRUE, transforma os NAs em 0.
binary FALSE - os valores de cada observação serão mantidos como nos arquivos originais. Se TRUE, transforma o data.frame em dados de presença (1) e ausência (0).
transpose se FALSE, as colunas e linhas do data.frame serão mantidos como os arquivos de data.frames originais.
file se FALSE, o data.frame final será lançado no área de trabalho. Se file="file.txt", o data.frame será salvo no diretório atual como arquivo .txt, separado por tabulação.
Details:
Note que o diretório especificado no "path" deve ser exclusivo para os arquivos que serão trabalhados na função, já que todos os arquivos do diretório serão lidos.
Value:
join.frames gera o data.frame final na área de trabalho. Se for especificado algum nome para o arquivo .txt, será gerado um arquivo .txt separado por tabulação com o data.frame no diretório ativo.
Warning:
A primeira coluna, da variável de interesse, será transformado em nome de linhas em um determinado momento. Caso exista alguma observação repetida ou nome repetido nesta coluna, o rownames() gerará uma mensagem de erro impossibilitando a continuidade da função.
Note:
Os arquivos serão lidos do diretório especificado pela função read.delim(). Certifique-se que os arquivos estão no formato correto.
Author(s):
A. M. Jeckel
See Also:
read.delim()
rownames()
Examples:
#Para executar o exemplo, o arquivo Exemplo_Funcao.zip deve ser baixado (wikialunos de Adriana Moriguchi Jeckel: http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:alunos:trabalho_final:amjeckel:func ), e colocado em um diretório exclusivo, o qual será o seu "path"
#Assim que baixado, coloque esta pasta como diretório ativo
getwd() #Verifique se o diretório está correto
dir() #Verifique se apenas os arquivos do exemplo estão neste diretório
join.frames(getwd(), na.zero=T, binary=F, transpose=F, file="example.txt")
===== Link para o exemplo_funcao.zip =====
{{:bie5782:01_curso_atual:alunos:trabalho_final:amjeckel:exemplo_funcao.zip|Exemplo_Funcao.zip}}