Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在数据帧的每列中连续计数1_R - Fatal编程技术网

R 在数据帧的每列中连续计数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(

我有一个数据帧,每个单元格都有一个0或1。我想要一个代码,通过每一列,并计算在每一列的数字。如果1在一列的单元格中连续出现45次,则该列的出现次数应为1。我还想知道这种情况在一个专栏中是否发生过多次。因此,出现值可以是0(如果1连续45次不出现在列中),1或更多。我试图为此编写代码,但不知道如何编写。谢谢你的帮助


如果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))