一行特定项目的累积频率的 R 列
R Column for cumulative frequency of a row's particular item
我正在尝试创建一个列来计算该特定行的值在该点之前出现的频率。每个矩阵的代码显示当前数据和期望的结果。所以对于列矩阵类型 |值:
test <- matrix(c(
1,0.14,
1,0.1345,
2,1.245,
2,1.532,
3,3.5345,
3,2.987,
2,1.743),ncol=2, byrow=TRUE)
colnames(test) <- c("Type", "Value")
我正在尝试获取对应于类型列的输出频率列:
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")
对于之前出现的每个 Type 总和,该行中都有一个累积计数。
任何帮助,将不胜感激。
您可以使用 dplyr
按 Type
对数据进行分组,然后 return 每行的行号。因为数据是分组的,所以行号将等于给定值 Type
出现的次数。
library(tidyverse)
test %>%
tbl_df() %>%
group_by(Type) %>%
mutate(Frequency = row_number())
也许这样:
> 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
我正在尝试创建一个列来计算该特定行的值在该点之前出现的频率。每个矩阵的代码显示当前数据和期望的结果。所以对于列矩阵类型 |值:
test <- matrix(c(
1,0.14,
1,0.1345,
2,1.245,
2,1.532,
3,3.5345,
3,2.987,
2,1.743),ncol=2, byrow=TRUE)
colnames(test) <- c("Type", "Value")
我正在尝试获取对应于类型列的输出频率列:
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")
对于之前出现的每个 Type 总和,该行中都有一个累积计数。 任何帮助,将不胜感激。
您可以使用 dplyr
按 Type
对数据进行分组,然后 return 每行的行号。因为数据是分组的,所以行号将等于给定值 Type
出现的次数。
library(tidyverse)
test %>%
tbl_df() %>%
group_by(Type) %>%
mutate(Frequency = row_number())
也许这样:
> 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