преобразование data.frame в r

У меня есть df с кучей столбцов. Каждая строка представляет вид, наблюдаемый во время каждой поездки для отбора проб. Я хочу преобразовать это в матрицу или фрейм данных, где каждый столбец представляет собой вид, а каждая строка представляет собой выборку. Я хочу преобразовать его для анализа с помощью веганских функций. В основном я хочу противоположного этому плавления data.frame в R

Исходный формат

data.frame(speciesname=c("a","b","c","a"),sample.id=c(1,1,2,3),count=c(10,1,5,2))

speciesname sample.id count
1           a         1    10
2           b         1     1
3           c         2     5
4           a         3     2

Я хочу преобразовать его, чтобы он выглядел так:

   a b c
1 10 1 0
2  0 0 5
3  2 0 0

Я пытаюсь не делать какой-то отвратительный двойной цикл for с операторами if, но если это то, что мне нужно делать...


person Monal    schedule 29.03.2015    source источник
comment
library(reshape2);acast(df1, sample.id~speciesname, value.var='count', fill=0) также можно использовать   -  person akrun    schedule 29.03.2015


Ответы (1)


Использование xtabs()

xtabs(count ~ sample.id + speciesname, df)
#          speciesname
# sample.id  a  b  c
#         1 10  1  0
#         2  0  0  5
#         3  2  0  0
person Rich Scriven    schedule 29.03.2015
comment
Спасибо. Я бы никогда не нашел эту функцию. - person Monal; 29.03.2015