2015-02-12 2 views
0

У меня есть следующие R-данные, которые я хотел бы обработать, подсчитав для каждого коэффициента количество раз, когда оно было замечено для значений, меньших, чем в x.Подсчет чисел факторов для значений, меньших, чем переменная, в R

structure(list(variable = structure(c(2L, 2L, 1L, 1L, 2L, 3L, 
2L, 2L, 1L, 2L, 3L, 3L, 1L, 3L, 2L, 1L, 2L), .Label = c("A", 
"B", "C"), class = "factor"), x = c(0, 0.01, 0.03, 0.05, 0.33, 
0.38, 0.02, 0.03, 0.1, 0.15, 0.41, 0.42, 0.38, 0.07, 0.32, 0.05, 
0.04)), .Names = c("variable", "x"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
"14", "15", "16", "17")) 

я бы в конечном итоге с кадра данных следующим образом:

x A B C 
0 00 0 1 0 
0.01 0 2 0 
0.02 0 3 0 
0.03 1 4 0 
0.04 1 5 0 
0.05 3 5 0 
0.07 3 5 1 
and so on 

я не нашел ничего прямо вперед так далеко, так что я был бы очень благодарен за помощь.

+0

Это делает то же самое в виде таблицы с использованием 'таблицы (х, переменная)' а Я хочу, чтобы количество раз, когда A, B и C были замечены для значений меньше 0,01, затем 0.02 .... – blJOg

ответ

2

Попробуйте

tbl1 <- table(df1[2:1]) 
res <- apply(tbl1, 2, cumsum) 
head(res, 7) 
#  variable 
#  A B C 
# 0 0 1 0 
# 0.01 0 2 0 
# 0.02 0 3 0 
# 0.03 1 4 0 
# 0.04 1 5 0 
# 0.05 3 5 0 
# 0.07 3 5 1 

Или код в одну строку будет (от комментариев @David Arenburg в)

apply(table(df1), 1, cumsum) 
+1

Я думаю, вы могли бы просто упростить 'apply (table (df), 1, cumsum)' ... –

Смежные вопросы