gpt4 book ai didi

r - 列中的计数值使用空单元格表示新数字

转载 作者:行者123 更新时间:2023-12-04 10:47:47 25 4
gpt4 key购买 nike

我想使用行为数据来计算捕获的元素数量。这是我的示例数据:

df <- data.frame(id = as.factor(c(51,51,51,51,51,51,51,52,52,52,52,52,52)), 
type = c("(K)","(K)","(K)","(K)","","","","(K)","(K)","","(K)","","(K)"))

我想根据它们是否连续来计算我的每个“K”。如果是连续的,则该字符串应计为一个。如果两者之间有差距,它们都应该算作一个。所以最终的计数将为 2。

希望这是有道理的......对于上面的例子,我希望我的最终输出数据看起来像这样

id type tally
1 51 (K) 1
2 52 (K) 3

我认为 aggregate 可能会这样做,但是它计算的是一列中的总数,所以 51 tally=4 而不是 1

任何帮助将不胜感激

谢谢恩典

最佳答案

在基础 R 中,您可以使用 rle 来完成。先用id拆分df,然后对每个子组统计"(K)"的时间序列数。

sapply(split(df, df$id), function(a)
length(with(rle(as.character(a$type)), lengths[values == "(K)"])))
#51 52
# 1 3

关于r - 列中的计数值使用空单元格表示新数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43714125/

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