簡體   English   中英

如何在 R 中將兩行合並為一?

[英]How to merge two rows into one in R?

我正在 R 中尋找一種解決方案,用於將成對的行合並為一個。

任務 開始時間 時間結束
編程 13:35 13:50
編程 14:00 15:40
生產 15:45 16:00
質量檢驗 16:15 16:30
質量檢驗 16:45 17:00
library(tidyverse)

df <- data.frame('Task' = c('Promgramming', 'Programming', 'Production', 'QualityInspection', 'QualityInspection'), 
                'Starttime' = c('13:35', '14:00', '15:45', '16:15', '16:45'), 
                'Endtime' = c('13:50', '15:40', '16:00', '16:30', '17:00'))

我想要的表格如下:

任務 開始時間 時間結束
編程 13:35 15:40
生產 15:45 16:00
質量檢驗 16:15 17:00

任務總是兩個或一個成對出現。

我怎樣才能做到這一點?

對於每個Task ,您可以提取第一個Starttime和最后一個EndTime

library(dplyr)

df %>%
  group_by(Task) %>%
  summarise(Starttime = first(Starttime), 
            Endtime = last(Endtime))

# Task              Starttime Endtime
#  <chr>             <chr>     <chr>  
#1 Production        15:45     16:00  
#2 Programming       13:35     15:40  
#3 QualityInspection 16:15     17:00  

數據

df <- structure(list(Task = c("Programming", "Programming", "Production", 
"QualityInspection", "QualityInspection"), Starttime = c("13:35", 
"14:00", "15:45", "16:15", "16:45"), Endtime = c("13:50", "15:40", 
"16:00", "16:30", "17:00")), class = "data.frame", row.names = c(NA, -5L))

使用data.table

library(data.table)
setDT(df)[, .(Starttime = first(Starttime), Endtime = last(Endtime)), Task]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM