gpt4 book ai didi

R 计算一个级别在 n 行中出现的次数

转载 作者:行者123 更新时间:2023-12-02 07:23:41 26 4
gpt4 key购买 nike

例如,我有一个包含 1000 个 obs 和 3 个级别(A、B、C)的向量。我想计算每 5 行出现 A 级的次数,并生成另一个计数值向量,即 200obs。有人能帮忙吗?我发现了如何根据另一个变量而不是行数进行计数。谢谢!

df <- data.frame(test=factor(sample(c("A","B", "C" ),1000,replace=TRUE)))
head(df, 10)
test
1 A
2 A
3 B
4 C
5 B
6 A
7 C
8 B
9 C
10 C

最佳答案

以下是您可能会觉得有用的几个选项:

a) 每 5 行计算所有条目并返回一个列表:

head(lapply(split(df$test, rep(1:200, each = 5)), table), 2)
# $`1` # <- result for rows 1:5
#
# A B C
# 1 0 4
#
# $`2` # <- result for rows 6:10
#
# A B C
# 3 0 2

b) 每 5 行计算所有条目并返回一个矩阵:

head(t(sapply(split(df$test, rep(1:200, each = 5)), table)), 2)
# A B C
# 1 1 0 4
# 2 3 0 2

c) 计算每 5 行 A 的数量并返回一个列表:

head(lapply(split(df$test == "A", rep(1:200, each = 5)), sum), 2)
# $`1`
# [1] 1
#
# $`2`
# [1] 3

d) 计算每 5 行 A 的数量并返回一个向量:

head(sapply(split(df$test == "A", rep(1:200, each = 5)), sum), 2)
#1 2
#1 3

每个结果的长度为 200 个条目/有 200 行。

关于R 计算一个级别在 n 行中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36890090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com