Como alterar os componentes das listas em R
Muito parecido com muitos outros objetos que você vai encontrar em R, as listas não são objetos estáticos. Você pode alterar os componentes, adicionar componentes, e remover componentes de los de uma forma bastante simples.
Menu
Alterar o valor de componentes
Atribuir um novo valor para um componente em uma lista é bastante simples. Você usar o $ ou o [[]] para acessar esse componente, e simplesmente atribuir um novo valor. Se você deseja substituir as notas na lista baskets.nlist com a estrutura de dados baskets.df, por exemplo, você pode usar qualquer uma das seguintes opções:
> Baskets.nlist [[1]] lt; - baskets.df> baskets.nlist [[# 147-scores # 148-]] lt; - baskets.df> baskets.nlist $ pontuação lt; - baskets.df
Se você usar [], a história é um pouco diferente. Você pode alterar os componentes usando [] bem, mas você tem que atribuir uma lista de componentes. Assim, para fazer o mesmo que as opções anteriores usando [], você precisa usar o seguinte código:
> Baskets.nlist [1] lt; - lista (baskets.df)
Todas estas opções têm exatamente o mesmo resultado, então você pode perguntar por que você nunca iria usar a última opção. Simples: Usando [] permite alterar mais de um componente de uma só vez. Você pode mudar tanto a estação e as pontuações em baskets.list com a seguinte linha de código:
> Baskets.list [1: 2] lt; - lista (baskets.df, # 147-2009-2010 # 148-)
Esta linha substitui o primeiro componente em baskets.list com o valor de baskets.df, e o segundo componente de baskets.list com o valor de caractere # 147-2009-2010# 148-.
A remoção de componentes
A remoção de componentes é ainda mais simples: apenas atribuir o NULO valor para o componente. Na maioria dos casos, o componente é simplesmente removido. Para remover o primeiro componente a partir de baskets.nlist, você pode usar qualquer um destes (e mais) opções:
> Baskets.nlist [[1]] lt; - NULL> baskets.nlist $ pontuação lt; - NULL> baskets.nlist [# 147-scores # 148-] lt; - NULL
Usando colchetes simples, você voltará a ter a possibilidade de excluir mais de um componente de uma só vez. Note-se que, neste caso, você não tem que criar uma lista com o valor NULO primeiro. Pelo contrário, se você fosse fazer isso, você daria o componente do valor NULO em vez de removê-lo, como se mostra no exemplo a seguir:
> baskets.nlist lt; - lista (pontuação = baskets.df, estação = # 147-2010-2011 # 148 -)> baskets.nlist [# 147-scores # 148-] lt; - lista (NULL)> baskets.nlist $ scoresNULL $ temporada [1] # 147-2010-2011 # 148-
Adicionando componentes extras através de índices
Você pode usar tanto o $ ou índices para adicionar variáveis extras. Listas funcionam da mesma forma- para adicionar um componente chamado jogadoras à lista baskets.nlist, você pode usar qualquer uma das seguintes opções:
> baskets.nlist $ jogadores lt; - c (# 147-Granny # 148-, # 147 Geraldine # 148 -)> baskets.nlist [[nº 147-jogadores # 148-]] lt; - c (# 147-Granny # 148-, # 147 Geraldine # 148 -)> baskets.nlist [# 147-jogadores # 148-] lt; - lista (c (# 147-Granny # 148-, # 147 Geraldine # 148-))
Da mesma forma, para adicionar a mesma informação como um terceiro componente para a lista baskets.list, você pode usar qualquer uma das seguintes opções:
> Baskets.list [[3]] lt; - c (# 147-Granny # 148-, # 147 Geraldine # 148 -)> baskets.list [3] lt; - lista (c (# 147-Granny # 148-, # 147 Geraldine # 148-))
Essas últimas opções requerem que você sabe exatamente quantos componentes de uma lista tem antes de adicionar um componente extra. E se baskets.list continha três componentes, já que você iria substituir aquele em vez de adicionar um novo.
combinando listas
Se você quiser adicionar componentes a uma lista, seria bom se você pudesse fazê-lo sem ter que se preocupar com os índices em tudo. Para isso, a única coisa que você precisa é uma função que você usa extensivamente, o c () função.
É isso mesmo, o c () função - que é curto para concatenar - faz muito mais do que apenas criar vetores de um conjunto de valores. o c () função possível combinar diferentes tipos de objectos e, assim, pode ser utilizado para combinar listas em uma nova lista bem.
A fim de ser capaz de adicionar as informações sobre os jogadores, você tem que criar uma lista em primeiro lugar. Para se certificar de que você tem a mesma saída, você tem que reconstruir o original baskets.list também. Você pode fazer as duas coisas usando o seguinte código:
> baskets.list lt; - lista (baskets.team, # 147-2010-2011 # 148 -)> jogadores lt; - lista (rownames (baskets.team))
Então você pode combinar esta jogadoras lista com a lista goal.list como isso:
> C (baskets.list, jogadores) [[1]] 1º 2º 3º 4º 5º 6thGranny 12 4 5 6 9 3Geraldine 5 4 2 4 12 9 [[2]] [1] # 147-2010-2011 # 148 - [[3]] [1] # 147 Granny # 148- # 147 Geraldine # 148-
Se qualquer uma das listas contém nomes, esses nomes são preservados no novo objeto também.