在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)