r语言 - 如果CSV a和CSV B中的特定列值匹配,如何生成新列并填充值?



我正在学习R编程,其中有2个CSV文件包含以下数据。

我的程序应该工作,如果Shipping_ID(CSV_A)和Customer_ID(CSV_B)的值匹配。CSV_A应该创建一个名为"新列"的额外列,并且应该将"以前状态"(CSV_B)的数据填充到CSV_A中的"新列"。最后,CSV_A将作为CSV_A导出到我的系统的另一个位置。

我当前脚本的问题:问题是下面的脚本只与列匹配,并将结果作为列表给我。

有人能告诉我如何在R中做到这一点吗?

CSV_A:

S.No.   Shipping_ID   Current Status
1          50         Shipped
2          30         Shipped but not delivered
3          40         In progress
4          10         Shipped
5          20         Not Shipped

CSV_B:

S.No.   Customer_ID    Previous Status
1         10           Shipping in progress
2         20           Shipping in progress
3         30           Shipped

预期结果为CSV_A

S. No.  Shipping_ID         Current Status                    New Column
1           50                 shipped  
2           30                 Shipped but not delivered        Shipped
3           40                 in progress  
4           10                 Shipped                          Shipping in progress
5           20                 Not Shipped                      Shipping in progress
<<p>R脚本/strong>
library(SASxport)
CSV_A <- 'C:/Users/Userid/Desktop/csv/CSV_A.csv'
CSV_B <- 'C:/Users/Userid/Desktop/csv/CSV_B.csv'

library(tidyverse)
CSV_A<-read.csv(CSV_A )
CSV_A
CSV_B<-read.csv(CSV_B)
CSV_B
CSV_A$Shipping_ID<- CSV_B$Customer_ID[match(CSV_A$Shipping_ID, CSV_B$Customer_ID)]

尝试更改CSV_B的第二列名称

colnames(CSV_B)[2] <- "Shipping_ID"

然后连接数据框架,

library(dplyr)
left_join(CSV_A, CSV_B, by = Shipping_ID)

相关内容

  • 没有找到相关文章

最新更新