首页 > 解决方案 > 使用 Mutate() 在返回 NA 的 R 中创建月、日和年列

问题描述

数据样本:

Agreement   Ext.descr. Description of agreement             Valid From       Valid To 
    1001015314  254819  FWIN-HOFPA-AEP/AMERICAN ELECTRIC POWER  12/31/2020    12/31/2021
    1001009372  2552652 MULTI-TBCPE-STOREROOM SOLUTIONS/SYNOVOS 12/31/2020    12/31/2021 
    1001026488  2553601 MULTI-ABB MVD/LP/LVD/DRC/SENATOBIA      12/31/2020    12/31/2021 
    1001017623  2553659 D31-GRAYBAR CONTRACTOR                  12/31/2020    12/31/2021 
    1001004469  2553784 D31-GRAYBAR CONTRACTOR BLANKET          12/31/2020    12/31/2021 
    1001013206  2553786 D31-BUIST BLANKET-GRAYBAR ELECTRIC      12/31/2020    12/31/2021
    1001003012  2553790 GRMI-ALLIED ELECTRIC BLANKET- GRAYB     12/31/2020    12/31/2021 
    1001003264  2553792 D31-GRAYBAR INDUSTRIAL BLANKET / NE     12/31/2020    12/31/2021 
    1001002666  2554099 D31-INGREDION - 20AR03                  12/31/2020    12/31/2021 
    1001020806  255420  DAIA-HOFPA-MIDAMERICAN ENERGY           12/18/2020    12/31/2021 
    1001020461  2554587 GHIL-HELUKABEL LUG PROJECT              12/31/2020    12/31/2021 
    1001003015  2554595 GHIL-CHARLES INDUSTRIES                 12/31/2020    12/31/2021
    1001023615  255858  HAIN-HOFPA-PANDUIT                      12/31/2020    12/31/2021 
    1001007084  2567168 ININ-SOUTH BEND SOLAR PROJECT           12/31/2020    12/31/2021 
    1001007283  2567336 GHIL-CDW/MONRO CARLON PROJECT           12/31/2020    12/31/2021 
    1001010247  2571407 GRMI-BLACK RIVER FLATS                  12/31/2020    12/31/2021 
    1001010939  2572288 ININ-CRANE NAVAL BASE                   12/31/2020    12/31/2021 
    1001021887  2574755 LAMI-MCLAREN LANSING                    12/31/2020    12/31/2021 
    1001029671  2594599 ININ-MALLOR BUILDING                    12/31/2020    12/31/2021 
    1001029673  2594598 NATL-BUNPA AGR                          12/31/2020    12/31/2021 
    1001029673  2594598 MIWI-NATL-SQDPA                         12/31/2020    12/31/2021 

加载你的库

library(tidyverse)
library(readxl)
library(plyr)
library(dplyr)
library(lubridate)
library(rebus)
library(stringi)

找到你的工作目录

getwd()

设置你的工作目录

setwd('C:/Users/mcgilas/Desktop')

导入excel文件

Sales_Offices <- read.csv("All Sales Offices.csv", head(T))
Sales_Offices
District_31 <- read.csv("District 31.csv", head(T))
District_31

将 D31 csv 合并到销售办事处 csv

merged <- Sales_Offices %>%
  full_join(District_31)
view(merged)

过滤掉 ZCRJ 行

merged %>%
  filter(!ATyp %in% c("ZCRJ")) -> merged

过滤掉供应商名称中的 SCHNEIDER ELECTRIC USA INC

merged %>%
  filter(!Name %in% c("SCHNEIDER ELECTRIC USA INC")) -> merged
view(merged)

显示您的列名

colnames(merged)

删除不需要的列

merged[,c("Pri.Vendo", "OwnRole", "Time", "DChl", "On", "Part..Role", "Chgd.By", "Dv", "Chngd.On",
          "Partner", "TimChng", "Crcy", "Crtd.By", "SOrg.")] <- list(NULL)
view(merged)

出于视觉目的重命名列名

colnames(merged)[colnames(merged) == 'Name'] <- 'Vendor'
colnames(merged)[colnames(merged) == 'Name.1'] <- 'Name'
view(merged)
class(merged$Valid.From)
class(merged$Valid.To)

[1] “日期” [1] “日期”

merged <- merged %>% mutate(Year = year(Valid.From),
                            Month = month(Valid.From),
                            Day = day(Valid.From))
view(merged)

我在新的 Year、Month 和 Day 列以及我原来的 Valid.From 和 Valid.To 列中获得了所有 NA。

标签: rlubridate

解决方案


您尚未指定年、月和日的格式。检查 lubridate 中的格式


推荐阅读