首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中将信息放入列的问题

在R中将信息放入列的问题
EN

Stack Overflow用户
提问于 2019-11-28 23:21:33
回答 1查看 29关注 0票数 0

我有两个数据帧,一个是有10131000行的datos_octubre数据帧,另一个是datos_conductores数据帧。

我想添加一个名为operador的新列,该列将由以下指令填充

代码语言:javascript
运行
复制
for( j in 1:100){
for(i in 1:100){
  if ( (datos_octubre$FECHA_GPS[i]== datos_conductores$fecha[i])){
    if (datos_octubre$EQU_CODIGO[i]== datos_conductores$EQU_CODIGO[j]){
      if (datos_octubre$HORA_GPS[i] <= datos_conductores$hora_fin[j]){
        datos_octubre$Operador[i] <- datos_octubre$NOMBRE[j]
      }
    }
  }

这是数据帧datos_octubre和头部的结构:

代码语言:javascript
运行
复制
> str(datos_octubre)
'data.frame':   10131530 obs. of  14 variables:
 $ REP_GPS_CODIGO : Factor w/ 9329105 levels "MI051","MI051_1832614921789237",..: 2 3 4 5 6 7 8 9 10 11 ...
 $ EQU_CODIGO     : chr  "MI051" "MI051" "MI051" "MI051" ...
 $ TRAM_GPS_CODIGO: Factor w/ 4 levels "01","03","05",..: 4 4 4 4 4 4 4 4 4 4 ...
 $ EVE_GPS_CODIGO : Factor w/ 83 levels "01","02","03",..: 3 3 3 3 3 9 3 3 3 3 ...
 $ FECHA_GPS      : POSIXct, format: "2019-10-01" "2019-10-01" "2019-10-01" "2019-10-01" ...
 $ HORA_GPS       : Factor w/ 86389 levels "-75.6654","-75.6655",..: 16528 16536 16546 16556 16564 16568 16574 16583 16592 16601 ...
 $ LON_GPS        : num  -75.7 -75.7 -75.7 -75.7 -75.7 ...
 $ LAT_GPS        : num  4.8 4.8 4.8 4.8 4.8 ...
 $ VEL_GPS        : num  0 0 0 0 0 0 0 0 0 0 ...
 $ DIR_GPS        : int  0 0 0 101 101 101 101 101 101 101 ...
 $ ACL_GPS        : int  0 0 0 0 0 NA 0 0 0 0 ...
 $ ODO_GPS        : int  28229762 28229762 28229762 28229768 28229770 NA 28229770 28229770 28229770 28229770 ...
 $ ALT_GPS        : Factor w/ 120 levels "","\"MI051_1902402005409507",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Operador       : chr  "" "" "" "" ...
> head(datos_octubre)
          REP_GPS_CODIGO EQU_CODIGO TRAM_GPS_CODIGO EVE_GPS_CODIGO  FECHA_GPS HORA_GPS  LON_GPS LAT_GPS VEL_GPS DIR_GPS ACL_GPS  ODO_GPS ALT_GPS Operador
1 MI051_1832614921789237      MI051              EV             03 2019-10-01 04:35:38 -75.7444 4.79857       0       0       0 28229762                 
2 MI051_1832614964979379      MI051              EV             03 2019-10-01 04:35:46 -75.7444 4.79857       0       0       0 28229762                 
3 MI051_1832616366109032      MI051              EV             03 2019-10-01 04:35:56 -75.7444 4.79857       0       0       0 28229762                 
4 MI051_1832617794914447      MI051              EV             03 2019-10-01 04:36:06 -75.7442 4.79907       0     101       0 28229768                 
5 MI051_1832619516509591      MI051              EV             03 2019-10-01 04:36:14 -75.7442 4.79908       0     101       0 28229770                 
6 MI051_1832619543973570      MI051              EV             10 2019-10-01 04:36:18 -75.7442 4.79908       0     101      NA       NA         

这是datos_conductores和头部的重组:

代码语言:javascript
运行
复制
> str(datos_conductores)
'data.frame':   16522 obs. of  11 variables:
 $ fecha      : POSIXct, format: "2019-10-01" "2019-10-01" "2019-10-01" "2019-10-01" ...
 $ equ_id     : int  99 99 99 99 99 99 99 99 99 99 ...
 $ conductor  : int  34 34 34 34 34 34 34 65 65 65 ...
 $ servicio_id: int  533329 533328 533327 533326 533325 533324 533323 533333 533332 533331 ...
 $ PERA_ID    : int  362 362 362 362 362 362 362 107 107 107 ...
 $ hora_ini   : POSIXct, format: "2019-11-28 09:16:16" "2019-11-28 08:38:16" "2019-11-28 08:00:16" "2019-11-28 07:22:16" ...
 $ hora_fin   : POSIXct, format: "2019-11-28 09:21:00" "2019-11-28 09:16:16" "2019-11-28 08:38:16" "2019-11-28 08:00:16" ...
 $ ruta_id    : int  24 24 24 24 24 24 24 24 24 24 ...
 $ NOMBRE     : Factor w/ 85 levels "ALBERT HERNAN ZAPATA RESTREPO",..: 71 71 71 71 71 71 71 53 53 53 ...
 $ PERA_CEDULA: int  1088253762 1088253762 1088253762 1088253762 1088253762 1088253762 1088253762 10087424 10087424 10087424 ...
 $ EQU_CODIGO : Factor w/ 36 levels "MI051","MI052",..: 9 9 9 9 9 9 9 9 9 9 ...
> head(datos_octubre)
          REP_GPS_CODIGO EQU_CODIGO TRAM_GPS_CODIGO EVE_GPS_CODIGO  FECHA_GPS HORA_GPS  LON_GPS LAT_GPS VEL_GPS DIR_GPS ACL_GPS  ODO_GPS ALT_GPS Operador
1 MI051_1832614921789237      MI051              EV             03 2019-10-01 04:35:38 -75.7444 4.79857       0       0       0 28229762                 
2 MI051_1832614964979379      MI051              EV             03 2019-10-01 04:35:46 -75.7444 4.79857       0       0       0 28229762                 
3 MI051_1832616366109032      MI051              EV             03 2019-10-01 04:35:56 -75.7444 4.79857       0       0       0 28229762                 
4 MI051_1832617794914447      MI051              EV             03 2019-10-01 04:36:06 -75.7442 4.79907       0     101       0 28229768                 
5 MI051_1832619516509591      MI051              EV             03 2019-10-01 04:36:14 -75.7442 4.79908       0     101       0 28229770                 
6 MI051_1832619543973570      MI051              EV             10 2019-10-01 04:36:18 -75.7442 4.79908       0     101      NA       NA                 

此外,我尝试了运算符pype,但我没有得到我想要的结果。

EN

回答 1

Stack Overflow用户

发布于 2019-11-30 06:56:05

我已经找到了解决方案。

我必须使用函数as.POSIXct转换所有数据类型的数据,并在for中使用每个数据的time_ini和time_finish进行更正。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59091961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档