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 将每行值与多行进行比较并返回一个值_R_Compare - Fatal编程技术网

R 将每行值与多行进行比较并返回一个值

R 将每行值与多行进行比较并返回一个值,r,compare,R,Compare,我试图在R 我有一个带有时间(小时)的数据帧,第二列有0或1。连续时间步长之间的时间间隔为1小时。如果我可以附加一个示例文件,但不知道如何附加一个,那么会更容易。我想知道有多少个1是24小时间隔出现的。24小时内超过一个“1”被视为“1” 让我们假设一个计数器,cnt初始化为0 我想将第二列中的每一行与24小时窗口中的第二列值进行比较。如果在任何24小时内有多个“1”,则表示该24小时窗口中有一个“1” 在FORTRAN中,我会设置一个计数器,转到每个时间步,比较接下来24小时/时间步的值。如果

我试图在R

我有一个带有时间(小时)的数据帧,第二列有0或1。连续时间步长之间的时间间隔为1小时。如果我可以附加一个示例文件,但不知道如何附加一个,那么会更容易。我想知道有多少个1是24小时间隔出现的。24小时内超过一个“1”被视为“1”

让我们假设一个计数器,cnt初始化为0

我想将第二列中的每一行与24小时窗口中的第二列值进行比较。如果在任何24小时内有多个“1”,则表示该24小时窗口中有一个“1”

在FORTRAN中,我会设置一个计数器,转到每个时间步,比较接下来24小时/时间步的值。如果找到“1”,则对于第一个“1”,计数器将增加1。如果在同一个24小时周期中还有另一个“1”,我将不再增加计数器并移动到下一行,并一直这样做直到文件结束


希望我能解释我想要什么。如果不清楚,请告诉我。认为match()函数或plyr包可以完成某些事情,但无法找到。

Bioconductor中的IRanges包可以在这里提供帮助。首先,计算大小为24的窗口的
score
的运行总和。然后把总数限制在1

rs <- IRanges::runsum(score, 24)
pmin(rs, 1)

rs您不需要“附加”样本文件,但提供一些生成样本数据的代码会很有帮助,这样我们就可以准确地看到您的实际数据。如果我没有弄错,您想知道重叠的24小时中哪一个至少有一个“1”;i、 输出可以是一个简单的T/F向量集。种子(1)dat@alexis_laz:不确定。我试着做一个24小时的数字移动求和,之后当移动求和大于等于1时,我至少会得到一个,但我如何区分这些事件是否彼此间隔24小时?对不起,我仍然很困惑。您能否提供一个小的“x”(0和1),考虑到“奇怪”的发生情况,并显示预期的输出,为方便起见,假设3小时间隔(不是24小时)?