1
我想刪除具有NA值的列。如何刪除java中的二維數組列
舉例,當array [i,j]有NA時,我想刪除第i列。 find2DIndex查找NA值,removeNA刪除第i列。
儘管努力消除NA值,還存在NA在數組值..
private static Point find2DIndex(Object[][] array, Object search) {
if (search == null || array == null) return null;
for (int rowIndex = 0; rowIndex < array.length; rowIndex++) {
Object[] row = array[rowIndex];
if (row != null) {
for (int columnIndex = 0; columnIndex < row.length; columnIndex++) {
if (search.equals(row[columnIndex])) {
return new Point(rowIndex, columnIndex);
}
}
}
}
return null;
}
public static String[][] removeNA(String[][] str){
Point index = new Point();
if((index= find2DIndex(str,"NA"))!=null){
for(int j=0;j<49;j++){
for(int i=index.y;i<str.length/49;i++){
str[j][i]= str[j][i+1];
}//j열 모두 지우기
}
}
return str;
}
public static void main(String[] args) throws IOException {
String str = readCSV(new File("D:/sample.csv"));
String[] strArr = parse(str); // String 배열에 차곡차곡 담겨서 나온다.
String[][] Array2D = new String[27][45];
for(int i=0; i<45;i++){
for(int j=0;j<27;j++){
String k = strArr[i*27+j];
Array2D[j][i]= k;
}
}