Чтобы выполнить замену во 2-м и 3-м столбцах, вы можете использовать
df[df$y == 0, 2:3] <- NA
Или указать столбцы по имени
df[df$y == 0, c("x1", "x2")] <- NA
В качестве альтернативы, используя library(data.table)
можно сделать
setDT(df)[y==0, c('x1','x2') := NA]
К сожалению, нет ничего в платформе Java, которая делает это. Btw, также необходимо ли явно обработать null
элементы в Integer[]
массив (что int
Вы собирающийся использовать для тех?).
Еще раз Apache Commons Lang является Вашим другом. Они обеспечивают ArrayUtils.toPrimitive () , который делает точно, в чем Вы нуждаетесь. Можно указать, как Вы хотите обработать, аннулирует.
В особенности может это обойтись без необходимость создать новый массив и цикл через содержание.
Вы не можете преобразовать массив Целого числа к интервалу (т.е. Вы не можете изменить тип элементов массива) в Java. Так Вы любой должен создать новый интервал [], выстраивают и копируют значение Целочисленных объектов в него, или можно использовать адаптер:
class IntAdapter {
private Integer[] array;
public IntAdapter (Integer[] array) { this.array = array; }
public int get (int index) { return array[index].intValue(); }
}
Это может сделать Ваш код немного более читаемым, и объект IntAdapter только использует несколько байтов памяти. Большое преимущество адаптера состоит в том, что можно обработать особые случаи здесь:
class IntAdapter {
private Integer[] array;
public int nullValue = 0;
public IntAdapter (Integer[] array) { this.array = array; }
public int get (int index) {
return array[index] == null ? nullValue : array[index].intValue();
}
}
Другое решение состоит в том, чтобы использовать Примитивы палаты общин , который содержит много предопределенных адаптеров. В Вашем случае взгляните на ListIntList.
Или просто сделайте это простой способ, если Вы собираетесь сделать это только однажды. Но Вы не говорили о Целом числе! случай =null.
//array is the Integer array
int[] array2 = new int[array.length];
int i=0;
for (Integer integer : array) {
array2[i] = integer.intValue();
i++;
}
используя Доллар просто как:
Integer[] array = ...;
int[] primitiveArray = $(array).toIntArray();