问题
I'm trying to write a function to extract the frequencies of this table:
0 1 2 3 4 5 6 7
30 22 9 12 2 5 1 16
So I want to get c(30, 22, 9, 12, 2, 5, 1, 16)
.
The table changes each time I run the function, so I need something that can extract the information from the table automatically, so I don't have write a c() function each time.
回答1:
It honestly could not be any simpler. If you cannot figure this out, you will have lots of other problems:
> set.seed(42) ## be reproducible
> X <- sample(1:5, 50, replace=TRUE) ## our data
> table(X) ## our table
X
1 2 3 4 5
7 6 9 10 18
> str(table(X)) ## look at structure of object
'table' int [1:5(1d)] 7 6 9 10 18
- attr(*, "dimnames")=List of 1
..$ X: chr [1:5] "1" "2" "3" "4" ...
> as.numeric(table(X)) ## and just convert to vector
[1] 7 6 9 10 18
>
And for completeness, two more ways to get the data:
> unname(table(X)) ## jdropping names reduces to the vector
[1] 7 6 9 10 18
> table(X)[] ## or simply access it
[1] 7 6 9 10 18
>
来源:https://stackoverflow.com/questions/8465907/how-to-extract-counts-as-a-vector-from-a-table-in-r