如何用多个条件从不同的数据中减去一列



我有两个数据集(data1和Data2(。我需要在以下条件下制作新的数据集:1.首先匹配来自两个数据集(data1和Data2(的日期和date,2.如果数据1中的小时小于或等于数据2中的小时,则从数据2$CO2中减去数据1$CO2(数据1$CO2-Data2$CO2(。提前谢谢。

#数据1|小时|日期|CO2||:----|:----|----||2020年10月9日| 60651||23 | 2020年10月1日| 15663||2020年10月13日| 77181||2020年10月7日| 31595||2020年10月22日| 30017||2020年10月9日| 112285||0 | 2020年10月1日| 33829||2020年10月11日| 98260||2020年10月7日| 34427||2020年11月22日| 52289||2020年11月4日| 13851||2020年11月7日| 48847||2020年1月10日| 53577||0 | 2020年11月1日| 94340||2020年11月12日| 57698||2020年11月23日| 25474||2020年11月15日| 107757||2020年11月13日| 74622||2020年9月23日| 11715||2020年9月22日| 25700||2020年9月10日| 40783||2020年4月1日| 87467||2020年9月5日| 0 | 47500||2020年9月8日| 3789||2020年1月8日| 52998||2020年1月10日| 41810||2020年1月10日| 147901||2020年1月6日| 48793||2020年1月6日| 26056||2020年1月7日| 52276 |

#数据2|日期|小时|CO2||:----|:----|:-----||2020年9月1日| 4 | 13057||2020年9月1日| 12日| 11379||2020年9月1日| 22日| 9378||2020年9月9日| 4 | 9211||2020年9月9日| 12 | 13547||2020年9月9日| 22 | 8061||2020年1月10日| 4 | 10657||2020年1月10日| 12日| 11662||2020年10月1日| 9171年22日||2020年1月11日| 2018年4月4日||2020年11月1日| 12日| 8935||2020年11月1日| 2008年11月22日||2020年11月11日| 4 | 9017||2020年11月15日| 12 | 8128||2020年3月12日| 22日| 11052||2020年7月12日| 4 | 10449||2020年11月12日| 10508年12月||2020年9月5日| 4 | 9378||2020年9月7日| 22日| 8899||2020年9月9日| 4 | 9211||2021年1月1日| 4 | 9585||2021年1月5日| 12 | 11964||2021年1月9日| 4月13日|

首先需要解析String,然后转换为多维数组。

let input1 = "|9 |10/1/2020 |60651| |23 |10/1/2020 |15663| |13 |10/1/2020 |77181| |7 |10/1/2020 |31595| |22 |10/1/2020 |30017| |9 |10/1/2020 |112285| |0 |10/1/2020 |33829| |11 |10/1/2020 |98260| |7 |10/1/2020 |34427| |22 |11/1/2020 |52289| |4 |11/1/2020 |13851| |7 |11/1/2020 |48847| |10 |11/1/2020 |53577| |0 |11/1/2020 |94340| |12 |11/1/2020 |57698| |23 |11/1/2020 |25474| |15 |11/1/2020 |107757| |13 |11/1/2020 |74622| |23 |9/1/2020 |11715| |22 |9/2/2020 |25700| |10 |9/3/2020 |40783| |1 |9/4/2020 |87467| |0 |9/5/2020 |47500| |8 |9/6/2020 |3789| |8 |12/1/2020 |52998| |10 |12/1/2020 |41810| |10 |12/1/2020 |147901| |6 |12/1/2020 |48793| |6 |12/1/2020 |26056| |7 |12/1/2020 |52276|"
let input2 = "|9/1/2020 |4 |13057| |9/1/2020 |12 |11379| |9/1/2020 |22 |9378| |9/9/2020 |4 |9211| |9/9/2020 |12 |13547| |9/9/2020 |22 |8061| |10/1/2020 |4 |10657| |10/1/2020 |12 |11662| |10/1/2020 |22 |9171| |11/1/2020 |4 |10186| |11/1/2020 |12 |8935| |11/1/2020 |22 |11408| |11/11/2020 |4 |9017| |11/15/2020 |12 |8128| |12/3/2020 |22 |11052| |12/7/2020 |4 |10449| |12/11/2020 |12 |10508| |9/5/2020 |4 |9378| |9/7/2020 |22 |8899| |9/9/2020 |4 |9211| |1/1/2021 |4 |9585| |1/5/2021 |12 |11964| |1/9/2021 |4 |13129|"
function parse(string) {
let array = string.split(/|| /g).filter(o => o), result = [];
while (array.length) result.push(array.splice(0, 3))
return result;
}
let data1 = parse(input1)
let data2 = parse(input2)
console.log("data1", data1)
console.log("data2", data2)

最新更新