gpt4 book ai didi

java - 填写表格中的缺失值

转载 作者:可可西里 更新时间:2023-11-01 08:55:45 26 4
gpt4 key购买 nike

我有一个日期和价格列表:

Date           Price
1/3/2000 10.00
1/5/2000 10.45
1/7/2000 10.25
... ...

我有一个包含所有日期的单独日期列表:

Date
1/1/2000
1/2/2000
1/3/2000
...

我需要将它们组合起来,以便为缺少价格的日期填写之前的价格:

Date            Price
1/1/2000 10.00
1/2/2000 10.00
1/3/2000 10.00
1/4/2000 10.00
1/5/2000 10.45
1/6/2000 10.45
1/7/2000 10.25
... ...

我目前正在尝试遍历保存数据的数组列表,但无法正确排列日期,尤其是在开始和结束时。我现在正在使用 Java/Mysql/JDBC,但也对 R 开放。感谢您的任何建议。

最佳答案

感谢大家的帮助。这是我最终做的:-我创建了一个包含日期匹配的所有索引的列表。
-然后我将价格插入到一个数组中,该数组的元素数量与完整时间列表相同。-然后我创建了 3 个循环,一个用于第一次匹配时间之前的元素,一个用于最后一个匹配元素之后的元素,最后一个用于中间的所有元素。
-这三位填写了缺失的价格。

尽管我会分享。感谢您的帮助。

public static void checkLengths(ArrayList<String> masterTimes, ArrayList<String> testTimes, ArrayList<Double> prices){
ArrayList<Double> temp = new ArrayList<Double>();
ArrayList<Integer> matches = new ArrayList<Integer>();
Double[] temp2 = new Double [masterTimes.size()];
int mt = masterTimes.size();
int tt = testTimes.size();
if(mt == tt){
return;
}else{
int mast = 0;
int test = 0;
String mt1 = masterTimes.get(0);
String tt1 = testTimes.get(0);

test = 0;
for(int i = 0; i < masterTimes.size(); i++){
mt1 = masterTimes.get(i);
tt1 = testTimes.get(test);
System.out.println(" | mt1: " + mt1 + " | tt1: " + tt1);
if(mt1.equals(tt1)){
matches.add(i);
System.out.println("Inserting: " + i);
if(test < testTimes.size()){
test++;
}
if(test == testTimes.size()){
break;
}
}
}
System.out.println("Matches:");
printAL(matches);

// puts in known prices.
for(int i = 0; i < matches.size(); i++){
int g = matches.get(i);
temp2[g] = prices.get(i);
}

System.out.println("FirstPrices:");
printAR(temp2);

// Finds index of first and last matching times.
int matcher1 = matches.get(0);
int ind = matches.size() - 1;
int matcher2 = matches.get(ind);
System.out.println("Matcher1:" + matcher1 + " | Matcher2: " + matcher2);

// If a price is empty/null, it puts the prior price in it.
for(int i = matcher1; i < matcher2; i ++){
System.out.println(i + " | " + temp2[i]);
if(temp2[i] == null){
System.out.println(temp2[i] + " | " + temp2[i-1]);
temp2[i] = temp2[i-1];
}
}
System.out.println("SecondPrices:");
printAR(temp2);

// Deals with start.
for(int i = matcher1; i >= 0; i--){
if(temp2[i] == null){
temp2[i] = temp2[i+1];
}
}

System.out.println("ThirdPrices:");
printAR(temp2);

// Deals with end.
for(int i = matcher2; i < temp2.length; i++){
if(temp2[i] == null){
temp2[i] = temp2[i-1];
}
}
System.out.println("FourthPrices:");
printAR(temp2);

prices.clear();
System.out.println("Final Check:");

for (int i = 0; i < masterTimes.size(); i++){
System.out.println(i + " | " + masterTimes.get(i) + " | " + temp2[i]);
}

}
}

关于java - 填写表格中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4871434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com