Digamos uma tabela da seguinte maneira:
ID sp1 sp2 sp3 C1 1 3 2 C1 3 2 0 C1 2 1 1 C2 2 4 0 C2 1 3 1 C3 0 3 4 C3 2 1 2
#! /usr/bin/R > dados = read.table('dados.txt', header=T) > dados ID sp1 sp2 sp3 1 C1 1 3 2 2 C1 3 2 0 3 C1 2 1 1 4 C2 2 4 0 5 C2 1 3 1 6 C3 0 3 4 7 C3 2 1 2 > attach(dados) # transformando a coluna ID em fator. > dados$ID <- data-blogger-escaped-colunas="" data-blogger-escaped-dados.="" data-blogger-escaped-dados="" data-blogger-escaped-das="" data-blogger-escaped-de="" data-blogger-escaped-factor="" data-blogger-escaped-uma="" data-blogger-escaped-ver=""> dados$sp1 [1] 1 3 2 2 1 0 2 # para fazer uma média, por exemplo, utilizando o fator ID. > xsp1 <- data-blogger-escaped-mean="" data-blogger-escaped-sp1="" data-blogger-escaped-tapply="" id=""> xsp1 C1 C2 C3 2.0 1.5 1.0
Para fazer isso em Python, você poderia usar o numpy, simplesmente, ou usar as elegantes ferramentas do "pandas". Para quem vem do R, o Pandas é uma forma fácil de se entender com dados tabelados e cheios de fatores.
>>> import pandas as pd >>> dados = pd.read_table('dados.txt',sep=" ") >>> dados ID sp1 sp2 sp3 0 C1 1 3 2 1 C1 3 2 0 2 C1 2 1 1 3 C2 2 4 0 4 C2 1 3 1 5 C3 0 3 4 6 C3 2 1 2 # Acessar somente uma das colunas. >>> dados['sp1'] 0 1 1 3 2 2 3 2 4 1 5 0 6 2 Name: sp1 # Para fazer a média, com a função groupby >>> dados.groupby('ID').sp1.mean() ID C1 2.0 C2 1.5 C3 1.0 Name: sp1 # Ainda é possível fazer várias coisas com o objeto dados (que agora é um DataFrame). # Por exemplo, pegar a média e a variância, ordenados por ID. >>> dados.groupby('ID').sp1.agg(['mean', 'var']) mean var ID C1 2.0 1.0 C2 1.5 0.5 C3 1.0 2.0
Até mais.
[1] http://pandas.pydata.org/
Nenhum comentário:
Postar um comentário