R 在数据帧的每列中连续计数1
我有一个数据帧,每个单元格都有一个0或1。我想要一个代码,通过每一列,并计算在每一列的数字。如果1在一列的单元格中连续出现45次,则该列的出现次数应为1。我还想知道这种情况在一个专栏中是否发生过多次。因此,出现值可以是0(如果1连续45次不出现在列中),1或更多。我试图为此编写代码,但不知道如何编写。谢谢你的帮助R 在数据帧的每列中连续计数1,r,R,我有一个数据帧,每个单元格都有一个0或1。我想要一个代码,通过每一列,并计算在每一列的数字。如果1在一列的单元格中连续出现45次,则该列的出现次数应为1。我还想知道这种情况在一个专栏中是否发生过多次。因此,出现值可以是0(如果1连续45次不出现在列中),1或更多。我试图为此编写代码,但不知道如何编写。谢谢你的帮助 如果1连续出现90次,那我就不会出现2次 我们可以使用数据表中的rleid library(data.table) setDT(df1)[, lapply(.SD, function(
如果1连续出现90次,那我就不会出现2次 我们可以使用
数据表中的rleid
library(data.table)
setDT(df1)[, lapply(.SD, function(x) {x1 <- rleid(x); list(table(x1[x!=0]))})]
数据
set.seed(24)
我们的答案非常有效。你能不能加上一点,告诉我这些连续出现的1有哪些行号。@最后一个字不清楚你想要的答案是什么。如果需要行号lappy(df1,函数(x){i1
lapply(df1, function(x) with(rle(x), lengths[values==1]))
set.seed(24)
df1 <- as.data.frame(matrix(sample(0:1, 5*20, replace = TRUE), ncol=5))