Como identificar e Dimensões Caiu corretas no R

Cada função em R espera que seus dados estejam em um formato específico. Isso não quer dizer simplesmente se é um número inteiro, personagem ou fator, mas também se você fornecer um vetor, uma matriz, um quadro de dados, ou uma lista. Muitas funções podem lidar com vários formatos, mas às vezes o resultado não é o que você espera em tudo.

Por exemplo, R automaticamente tenta reduzir o número de dimensões quando subsetting uma matriz, uma matriz ou estrutura de dados. Se você quer calcular as somas de linha das variáveis ​​numéricas em um quadro de dados - por exemplo, os dados do quadro sono built-in - você pode escrever uma pequena função como esta:

rowsum.df lt; - função (x) {

identidade lt; - sapply (x, is.numeric)

rowSums (x [, id])

}

Se você tentar isso em dois alto-quadros de dados, pressão e dormir, você obtém um resultado para o primeiro, mas a seguinte mensagem de erro para o segundo:

> Rowsum.df (sleep)

Erro no rowSums (x [, id]):

'X' deve ser uma matriz de, pelo menos, duas dimensões

Porque o sono contém apenas uma única variável numérica, x [, id] retorna um vetor em vez de um quadro de dados, e isso faz com que o erro no rowSums ().

Você pode resolver este problema através da adição gota = FALSE ou usando o método de lista subsetting x [i] em vez disso.

menu