我正在学习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)