Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Dataframe_Rows - Fatal编程技术网

在R中同时操作多行数据帧

在R中同时操作多行数据帧,r,loops,dataframe,rows,R,Loops,Dataframe,Rows,我肯定以前有人问过这个(非常基本的)问题,但我一定是找错了,因为我找不到答案: 我经常需要执行涉及组合来自同一数据帧的多行数据的操作。我知道如何使用循环构造来实现这一点,例如 for (i in 2:nrow(df)) { df$result[i] <- df$data[i] - df$data[i-1] } for (i in 12:nrow(df)) { j <- i - 11; df$result[i] <- prod(df$data[j:i]) } 对于(i in 2

我肯定以前有人问过这个(非常基本的)问题,但我一定是找错了,因为我找不到答案:

我经常需要执行涉及组合来自同一数据帧的多行数据的操作。我知道如何使用循环构造来实现这一点,例如

for (i in 2:nrow(df)) { df$result[i] <- df$data[i] - df$data[i-1] }
for (i in 12:nrow(df)) { j <- i - 11; df$result[i] <- prod(df$data[j:i]) }

对于(i in 2:nrow(df)){df$result[i]您可以尝试对数据帧进行子集设置,例如:

for (i in 2:nrow[df]) { df$result[i] <- df$data[i] - df$data[i-1] }
对于(i在2:nrow[df]){df$result[i]在基本R:

df$result[2:nrow(df)] = diff(df$data)
df$result2[13:nrow(df)] = diff(df$data,12)
dplyr

df$result = dplyr::lag(df$data)
df$result2 = dplyr::lag(df$data, 12)

谢谢!这两种解决方案使我得到了第一种情况,即我需要处理“这一行”和“前一行”。第二种情况下,我需要处理“这一行”和“前十一行”是否有类似的解决方案?
df$result = dplyr::lag(df$data)
df$result2 = dplyr::lag(df$data, 12)