2014-01-02 2 views
1

У меня есть dataframe -> "тест"Граф состояний в определенном столбце в dataframe в R

> test 
    V1 V2 
1 INS01 1 
2 INS01 1 
3 INS02 1 
4 INS03 2 
5 INS03 3 
6 INS04 4 
> class(test) 
[1] "data.frame" 

Я хотел подсчет "INS01", "INS02", "INS03", " INS04" . Я пробовал использовать «by», но это не дает мне желаемого результата.

> agg <- by(test, test$V1, function(x) length(x)) 
> agg 
test$V1: INS01 
[1] 2 
------------------------------------------------------------ 
test$V1: INS02 
[1] 2 
------------------------------------------------------------ 
test$V1: INS03 
[1] 2 
------------------------------------------------------------ 
test$V1: INS04 
[1] 2 

Я застрял здесь. Любая помощь приветствуется. благодаря

ответ

1

колонки Преобразовать V1 до factor и использовать метод factorsummary по умолчанию, который возвращает частоты.

> summary(as.factor(test$V1)) 
INS01 INS02 INS03 INS04 
    2  1  2  1 
+0

Thanku ... Это самое простое решение. Я думал о трудном пути: D – user1946217

+1

err ... это полезное решение, а не самое простое :-) –

+0

Я должен согласиться с @JorisMeys здесь, но опять же, я не задавал вопрос :-) – A5C1D2H2I1M1N2O1R2T1

2

Использования table()

Давайте сделаем рамку тестовых данных (и, пожалуйста, дайте подобный код в ваших следующих вопросах см here)

zz <- textConnection(" 
V1 V2 
1 INS01 1 
2 INS01 1 
3 INS02 1 
4 INS03 2 
5 INS03 3 
6 INS04 4 
") 
Data <- read.table(zz) 

И затем:

> table(Data$V1) 

INS01 INS02 INS03 INS04 
    2  1  2  1 
1

Джорис делится так, как я бы идти об этом, но я думал, что я хотел бы поделиться, почему ваш ответ неверен:

Использование length на data.frame говорит вам, сколько столбцов есть в data.frame, а не количество результирующих строк (это то, что вы на самом деле после этого).

Пример:

x <- data.frame(matrix(1:100, ncol = 25)) 
length(x) 
# [1] 25 

Если вы хотите использовать by используйте nrow вместо:

by(test, test$V1, function(x) nrow(x)) 
# test$V1: INS01 
# [1] 2 
# --------------------------------------------------------------------------- 
# test$V1: INS02 
# [1] 1 
# --------------------------------------------------------------------------- 
# test$V1: INS03 
# [1] 2 
# --------------------------------------------------------------------------- 
# test$V1: INS04 
# [1] 1 
Смежные вопросы