Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2017:alunos:trabalho_final:amjeckel:func

Função join.frames

Arquivo da função: 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")
05_curso_antigo/r2017/alunos/trabalho_final/amjeckel/func.txt · Última modificação: 2020/08/12 06:04 (edição externa)