Operações para selecionar dados no R

Em um outro post falamos um pouco sobre como trabalhar com tabelas no R. Neste post vamos explicar, baseado nesse post em inglês, sobre como selecionar seus dados uma vez eles carregados no R.

Vamos utilizar o mesmo arquivo de dados do post anterior, chamado fumantes.csv como base dos exemplos, que contém dados fictícios de 356 pessoas. A primeiro coluna representa o estado atual da pessoa em relação ao cigarro, podendo ser: fumante, ex-fumante e não fumante. Para cada uma das pessoas existe também a informação sócio-econômica: baixa, média, alta.

> dados_fumantes <- read.csv(file='fumantes.csv',sep=',',header=T)
> head(dados_fumantes)
 Fumante SE
 1 Ex-fumante Alta
 2 Ex-fumante Alta
 3 Ex-fumante Alta
 4 Ex-fumante Alta
 5 Ex-fumante Alta
 6 Ex-fumante Alta

Para selecionar colunas pelo nome:

> dados_fumantes[,c('Fumante','SE')])
 Fumante SE
 1 Ex-fumante Alta
 2 Ex-fumante Alta
 3 Ex-fumante Alta
 4 Ex-fumante Alta
 5 Ex-fumante Alta
 6 Ex-fumante Alta
 ...

Para selecionar linhas e colunas:

> dados_fumantes[122:127,c('Fumante','SE')]
 Fumante SE
 122 Fumante Alta
 123 Fumante Alta
 124 Fumante Alta
 125 Fumante Alta
 126 Fumante Alta
 127 Fumante Alta

Para selecionar linhas que contém determinada informação, outros operadores como >, >=, < e <= também podem ser utilizados:

> dados_fumantes[dados_fumantes$SE=="Alta",]
 Fumante SE
 1 Ex-fumante Alta
 2 Ex-fumante Alta
 3 Ex-fumante Alta
 4 Ex-fumante Alta
 5 Ex-fumante Alta
 6 Ex-fumante Alta
 ...

Você pode utilizar dados a função grep para seleção:

> dados_fumantes[grep("ex",dados_fumantes$Fumante, ignore.case=T),]
 Fumante SE
 1 Ex-fumante Alta
 2 Ex-fumante Alta
 3 Ex-fumante Alta
 4 Ex-fumante Alta
 5 Ex-fumante Alta
 6 Ex-fumante Alta
 ...

O nome das linhas no R não são necessariamente únicos como nos exemplos anteriores sendo númerico de 1 a 356.
Por exemplo a matrix mat seguinte:

> mat = matrix(1:18, nrow=6, ncol=3)
 > rownames(mat) <- c('a', 'a', 'a', 'b', 'b', 'b')
 > colnames(mat) <- c('foo', 'bar', 'bat')
 > mat
 foo bar bat
 a 1 7 13
 a 2 8 14
 a 3 9 15
 b 4 10 16
 b 5 11 17
 b 6 12 18

Quando você tenta selecionar pelo nome das linhas apenas a primeira linha é retornada:

> mat['a',]
 foo bar bat
 1 7 13
> mat['b',]
 foo bar bat
 4 10 16

Mas este outro comando funciona como esperado:

> mat[rownames(mat)=='a',]
 foo bar bat
 a 1 7 13
 a 2 8 14
 a 3 9 15

Trabalhando com tabelas de dados no R

R é uma ferramenta estatística que pode ser utilizada para manipular dados e criar gráficos.

Muitas vezes trabalhar com tabelas pode ser prático para manipulação dos dados. Essa explicação é baseada nesta página, inclusive os dados e exemplos são os mesmos traduzidos.

Vamos utilizar o arquivo fumantes.csv como base dos exemplos, que contém dados fictícios de 356 pessoas. A primeiro coluna representa o estado atual da pessoa em relação ao cigarro, podendo ser: fumante, ex-fumante e não fumante. Para cada uma das pessoas existe também a informação sócio-econômica: baixa, média, alta.

Para ler os dados do arquivo e listar o sumário basta utilizar os comandos abaixo:

> dados_fumantes <- read.csv(file='fumantes.csv',sep=',',header=T)
> summary(dados_fumantes)
 Fumante SE 
 Ex-fumante :141 Alta :211 
 Fumante :116 Baixa: 93 
 Não fumante: 99 Média: 52

O comando read.csv lê um arquivo no formato csv e carrega os dados para dentro do R. O comando summary devolve o sumário dos dados informados.

Você pode criar uma tabela a partir dos dados usando o seguinte comando:

> tabela_fumantes <- table(dados_fumantes$Fumante,dados_fumantes$SE)
> tabela_fumantes

 Alta Baixa Média
 Ex-fumante 92 28 21
 Fumante 51 43 22
 Não fumante 68 22 9

Por exemplo podemos ver que existem 51 fumantes da classe socio-ecônomica alta.

Para criar uma tabela de maneira indireta fazemos primeiro uma matrix com os valores e então convertemos para tabela.

> fumantes <- matrix(c(51,43,22,92,28,21,68,22,9),ncol=3,byrow=TRUE)
> colnames(fumantes) <- c("Alta","Média","Baixa")
> rownames(fumantes) <- c("Fumante","Ex-fumante","Não-fumante")
> fumantes <- as.table(fumantes)
> fumantes
 Alta Média Baixa
Fumante 51 43 22
Ex-fumante 92 28 21
Não-fumante 68 22 9

Existem vários formatos para transformar os dados em gráficos. No exemplo seguinte o primeiro comando, barplot, cria um gráfico com barras e o segundo, plot, com caixas.

> barplot(fumantes,legend=T,beside=T,main='Estado de Fumante por Classe Socio-Ecônomica')
> plot(fumantes,main="Estado de Fumante por Classe Socio-Ecônomica")

Como fazer programas não instalados pela central de instalação do Ubuntu permanecerem no Launcher

Quando você baixa programas para o Ubuntu diretamente por uma página e não pela central de instalação, por exemplo eclipse ou sublime text, ao abrí-los a opção de deixá-los no painel de abertura não existe.

Para fazer isso acontecer você precisa configurar um arquivo que contém comando do programa e ícone. Você pode fazer isso na raça, editando na mão o arquivo, mas irei mostrar aqui uma maneira mais facilitada.

Primeiro faça o download do programa Main Menu pela central de instalação do Ubuntu.

Então abra o programa:

Adicione as informações do programa que deseje instalar, como nome, comando ou path para executável e ícone. Para selecionar o ícone basta clicar na imagem. Ao salvar o Main Menu irá criar o arquivo .desktop necessário para fazer a mágica acontecer. Abra a pasta ~/.local/share/applications e você encontrará o arquivo, execute ele e o programa irá abrir com a opção de permanecer na barra de abertura. Outra opção é arrastar o arquivo criado para a barra lateral.

Mostrando a lista de atalhos do Git

Como vimos neste post é possível criar alias para os comandos do Git.

Esses alias agilizam o trabalho com o Git e principalmente, para aqueles que como eu também alguns repositórios em SVN, fica complicado não ter os mesmos atalhos simplificados.

E existirá um momento em que você vai precisar relembrar quais os comandos você fez atalhos, o que falta, o que pode ser adicionado, ou mudar um existente. Para isso listar todos os atalhos é essencial.

O comando de Terminal para tal tarefa é o seguinte:

git config --get-regexp alias

O mais interessante ainda é criar um alias para este comando, fazendo o seguinte:

git config --global alias.alias "config --get-regexp alias"

Com este comando você simplifica a listagem dos atalhos e define para todo o sistema.

Como adicionar atalhos úteis ao Git

Atalhos, ou alias em inglês, podem ser criados no Git e facilitam a sua utilização por Terminal.

Outra vantagem é que para aqueles que como eu utilizam também o SVN e estão acostumados aos comandos curtos como “svn st” podem se beneficiar também destes atalhos no Git.

O comando para adicionar um novo atalho é o git config alias. Aqui segue uma lista de alguns comandos interessantes que encontrei nesta discussão:

git config alias.st status
git config alias.co checkout
git config alias.com checkout master
git config alias.cia "commit -a -m"
git config alias.ci "commit -m"
git config alias.br branch
git config alias.fo fetch origin
git config alias.ff "merge --ff-only"
git config alias.ffo "merge --ff-only @{u}"
git config alias.po "push origin HEAD"
git config alias.alias "config --get-regexp alias"

Utilizando a opção –global os comandos estarão disponíveis para qualquer repositório Git em seu sistema. O comando abaixo por exemplo inclui o atalho git st para o comando git status em todo o sistema.

git config --global alias.st status

Primeiros passos no Git: instalação e comandos básicos

Git é mais uma opção de ferramentas para controle de versões e uma das mais populares hoje em dia. Criado pelo Linus Torvalds é disponível para os mais usados sistemas operacionais, Windows, Linux e MacOs.

Inicialmente eu achei um pouco chato de trabalhar com ele. Anteriormente eu usava o SVN que é sistema bem simples e com inúmeras opções de interfaces gráficas. Até hoje eu não encontrei nenhuma interface para o Git que seja suficientemente poderosa como utilizar ele por Terminal. Para visualização existem algumas opções tanto para Linux e MacOS (sistemas que eu utilizo) que são muito boas e mais pra frente irei falar delas aqui no site.

A primeira vantagem é a estrutura distribuída que ele possui. Você pode utilizá-lo apenas localmente, utilizar como SVN, commitando em um servidor externo, ou de forma completamente distribuída onde seus colegas usuários do mesmo repositório podem executar checkout na versão sua, do servidor ou apenas no local.

Para instalar o Git no Ubuntu execute o seguinte comando em seu Terminal:

apt-get install git-core

Para instalar no MacOS você tem 2 opções. Baixar e instalar pelo programa gráfico http://code.google.com/p/git-osx-installer

Ou via MacPorts (http://www.macports.org) pelo Terminal:

sudo port install git-core +svn +doc +bash_completion +gitweb

Normalmente, ao enviar suas atualizações pelo Git os servidores pediram para que você configure seus dados.

Com os seguintes comandos você consegue modificar os seus dados pessoais nome e email.

git config --global user.name "Nome Sobrenome"
git config --global user.email nomesobrenome@exemplo.com.br

Para iniciar um novo repositório em branco na pasta atual, utilize o seguinte comando:

git init

Este comando cria o diretório .git que contém todos arquivos necessários para o controle do repositório.

Para começar a utilizar o controle de versões pelo git, basta você adicionar os arquivos que desejar com o comando git add e criar uma nova versão com o comando git commit. Com a opção -m em git commit você pode informar uma descrição para a versão, como no exemplo abaixo:

touch inicio.c
git add inicio.c
git commit -m 'Versão inicial do projeto'

Para iniciar um repositório a partir de um outro repositório, de um servidor por exemplo, utilize o comando git clone [url]:

git clone git://github.com/karine-pires/como-faz.net-git-inicio.git

Este comando inicia um repositório em na pasta como-faz.net-git-inicio e baixa tudo que já estiver no repositório.

Se você quiser criar o reposítório dentro de outro diretório basta informá-lo depois do comando. O exemplo abaixo irá criar ao invés de um diretório chamado grit, um diretório chamado git-inicio.

git clone git://github.com/karine-pires/como-faz.net-git-inicio.git git-inicio

Um comando muito útil para saber qual a situação atual de seu repositório local é o git status. Ele irá lhe informar quais arquivos você já adicionou, quais ainda estão fora do controle do Git, quantas versões de diferença você está do original. O exemplo abaixo é o que aparece quando seu repositório está totalmente atualizado e sem nenhuma mudança.

git status
# On branch master
nothing to commit (working directory clean)

Para excluir um arquivo que já esteja no controle utilize o comando git rm:

git rm inicio.c
rm 'inicio.c'
git status
# On branch master
#
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#	deleted:    inicio.c
#

Para transferir as atualizações locais (realizadas com o comando git commit) para o servidor utilize o comando git push:

git push

Para baixar do servidor a versão mais recente do projeto utilize o comando git pull:

git pull

Existem várias opções para os comandos explicados aqui que estão mais detalhados na ajuda do Git ou na documentação online.

Como faz para instalar Adobe Flash Player, Reader e Air no Ubuntu

Instalar o Adobe Flash é essencial para que você consiga visualizar muitas páginas na Internet, principalmente as ligadas a vídeos e música. É o tipo de ação que você sempre faz sempre que formata o computador ou tem um computador novo.

Basicamente vou descrever esse tutorial aqui para instalar Adobe Flash Player, Reader e Air no Ubuntu 12.04 (Precise Pangolin).

Primeiro abra um Terminal para executar os comandos. Assim que tiver o Terminal aberto insira o comando abaixo para adicionar o repositório com os plugins.

sudo apt-add-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"

O comando abaixo atualiza seu sistema, necessário para utilizar o repośitório adicionado acima, e instala Adobe Flash Player and Adobe Reader.

sudo apt-get update && sudo apt-get install flashplugin-installer acroread

Para instalar o Adobe Air execute o comando abaixo para baixar o executável.

wget http://airdownload.adobe.com/air/lin/download/latest/AdobeAIRInstaller.bin

Adicione com o comando abaixo a permissão de execução para o executável que você baixou.

sudo chmod +x AdobeAIRInstaller.bin

E então execute ele com o seguinte comando:

sudo ./AdobeAIRInstaller.bin

Para mim todos os comandos funcionaram e agora consigo escutar minhas playlists no Youtube.

TeamViewer: uma alternativa para acesso remoto

Hoje vou falar de uma ferramenta que é muito útil! Me mudei recentemente e em meu novo apartamento possuo uma internet compartilhada do prédio. A conexão é boa (melhor do que a privada que eu tinha anteriormente) mas por ser do prédio eu não tenho como configurar portas e redirecionamentos necessários para criar por exemplo um servidor VNC. Claro que existem outras alternativas para esse problema, túneis, dns, etc mas resolvi tentar este programa indicado por um amigo e estou muito feliz com ele.

Com o TeamViewer você acessa remotamente seu computador, como no VNC, mas ainda com mais opções. Você pode por exemplo enviar arquivos de um computador ao outro diretamente pelo programa. Para começar a usar você precisa apenas instalar o programa, simples assim, sem necessidade de configuração ou conhecimento técnico.

Achei bem descente a qualidade e rapidez da conexão. Evidentemente que existe um atraso e que a qualidade da imagem não é ideal mas comparada ao que eu tinha com VNC anteriormente essa ferramenta é melhor.

Outra vantagem da ferramenta é que ela é compatível com Windows, Linux, MacOS, Android, iOS. E para uso não comercial ela é gratuita.