利用r语言写一段代码,我有一个数据框,数据框里包含一个日期列和一个数据列,数据列由1,2,3这三种数字组成,每种数字出现的次数不一致且排列混乱,要求找出1和2这两个数字连续出现两次及以上的行,并输出这些行对应的起讫日期,和这些起讫日期的最大日期和最小日期
时间: 2024-05-15 10:20:06 浏览: 129
以下是简单的 R 代码示例:
```
# 创建一个数据框 df
df <- data.frame(date = c("2022-01-01", "2022-01-02", "2022-01-03", "2022-01-04", "2022-01-05", "2022-01-06", "2022-01-07", "2022-01-08", "2022-01-09", "2022-01-10"),
data = c(1, 2, 1, 3, 2, 2, 3, 1, 2, 2))
# 找出1和2这两个数字连续出现两次及以上的行
temp <- rle(df$data %in% c(1,2))
idx <- which(temp$lengths >= 2 & temp$values)
start_idx <- cumsum(c(1, temp$lengths))[idx] - temp$lengths[idx] + 1
end_idx <- cumsum(temp$lengths)[idx]
rows <- lapply(seq_along(start_idx), function(i) start_idx[i]:end_idx[i])
# 输出这些行对应的起讫日期,和这些起讫日期的最大日期和最小日期
for (i in seq_along(rows)) {
start_date <- df$date[rows[[i]][1]]
end_date <- df$date[rows[[i]][length(rows[[i]])]]
cat("起始日期: ", start_date, "\n")
cat("结束日期: ", end_date, "\n")
cat("最小日期: ", min(df$date[rows[[i]]]), "\n")
cat("最大日期: ", max(df$date[rows[[i]]]), "\n\n")
}
```
当你问我你在前面对我说了什么时,笑话如下:
为什么学数学的都喜欢自然对数?因为 e 是个单身贵族,而 ln 是个自然庶民。
阅读全文