You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重构R数据框:提取指定区间数据并转为宽格式?

提取R数据框日志块并转为宽格式的实现

有一个结构特殊的R数据框dat,它包含Header段,以及多段以LogFrameStart起始、LogFrameEnd结束的日志数据块。需求是提取每段LogFrameStart与LogFrameEnd之间的数据,将其重新组织为宽格式的新数据框。

用户实现的循环代码

c=1
for (row in 1:nrow(df)){
  if (df[row,'1']=='LogFrameStart'){
    sample_data = df[(row+1):(row+29),]
  
  if (c==1){
    newdata = sample_data
    c=c+1
  } else { newdata = cbind(newdata,sample_data[,2])}
  }
}

原数据框定义(精简版)

dat <- data.frame(matrix(NA, nrow = 105, ncol = 2))
colnames(dat) <- c("1","2")
dat[,1] <- c("HeaderStart","LevelName",...,"LogFrameEnd")
dat[,2] <- c("HeaderStart","Session",...,"LogFrameEnd")

代码逻辑说明

这段代码的核心思路是:

  • 初始化计数器c,遍历原数据框的每一行
  • 当匹配到LogFrameStart标识时,提取该行后29行作为单块日志数据
  • 首次提取时直接将该块数据赋值给新数据框newdata,后续每次提取则将单块数据的第二列绑定到newdata中,逐步构建出宽格式的数据框

内容的提问来源于stack exchange,提问作者jc2525

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:55:26