R列用于行的特定项目的累积频率

时间:2017-07-26 11:55:13

标签: r frequency

我尝试创建一个列,计算该特定行的值到该点的频率。每个矩阵的代码显示当前数据和所需结果。所以对于列的矩阵Type |值:

test <- matrix(c(
1,0.14,1,
1,0.1345,2,
2,1.245,1,
2,1.532,2,
3,3.5345,1,
3,2.987,2,
2,1.743,3),ncol=3, byrow=TRUE)

colnames(test) <- c("Type", "Value","Frequency")

我试图获得与类型列对应的输出频率列:

$(document).ready(function() {
    $('#myTable').on('click', 'span', function() {
        var spanId = $(this).attr('id');
        console.log(spanId);
    });
});

对于在该行中存在累积计数之前出现的每种类型的总和。 任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以使用dplyrType对数据进行分组,然后返回每行的行号。由于数据已分组,因此行号将等于Type的给定值出现的次数。

library(tidyverse)

test %>% 
  tbl_df() %>% 
  group_by(Type) %>% 
  mutate(Frequency = row_number())

答案 1 :(得分:1)

也许这样:

> Frequency<-sapply(1:nrow(test), function(i) sum(test[1:i,1]==test[i,1]))
> cbind(test, Frequency)
     Type  Value Frequency
[1,]    1 0.1400         1
[2,]    1 0.1345         2
[3,]    2 1.2450         1
[4,]    2 1.5320         2
[5,]    3 3.5345         1
[6,]    3 2.9870         2
[7,]    2 1.7430         3