Свойство VCLCanvasSize компонента TPdfDocumentGDI меняет свое расширение после добавления второй страницы

Это можно сделать только с использованием базы R.

Я буду работать с копиями данных с именами dat1 и dat2. Первые будут относить медиану всех непустых значений к отсутствующим значениям. Последний будет удалять верхние и нижние значения из векторов перед вычислением медианов.

dat1 <- dat2 <- dat    # Make two copies of the data

dat1[] <- lapply(dat, function(x){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x[inx] <- median(x, na.rm = TRUE)
    c(x[-inx], x[inx])
  } else x
})

dat2[] <- lapply(dat, function(x){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x_tmp <- x[-inx]
    x[inx] <- median(x_tmp[-c(1, length(x_tmp))], na.rm = TRUE)
    c(x[-inx], x[inx])
  } else x
})

dat1
#    A  B  C  D  E  F
#1  12 98 84 28 34 34
#2  34 34 29 29 24 67
#3  98 76 28 90 23 67
#4  29 23 28 89 56 45
#5  84 98 28 28 46 67
#6  87 43 27 20 34 34
#7  87 23 85 49 34 67
#8  32 43 28 39 34 30
#9  43 43 28 90 34 65
#10 93 43 28 39 34 65

dat2
#   A  B  C  D  E  F
#1  12 98 84 28 34 34
#2  34 34 29 29 24 67
#3  98 76 28 90 23 67
#4  29 23 28 89 56 45
#5  84 98 28 28 46 67
#6  87 43 27 20 24 34
#7  87 23 85 49 24 67
#8  32 43 28 39 24 30
#9  43 43 28 90 24 65
#10 93 43 28 39 24 67

Изменить.

Следующая функция выполняет то, что делают обе анонимные функции выше. Все, что необходимо, - это установить аргументы в соответствующие значения.

Обратите внимание, что тесты сравнивают результаты с результатами оригинала выше.

imputeStat <- function(x, stat = median, remove = c("top", "bottom")){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x_tmp <- x[-inx]
    if("top" %in% remove) inx_rem <- 1
    if("bottom" %in% remove) inx_rem <- c(inx_rem, length(x[-inx]))
    if(is.logical(remove)){
      if(!remove) x[inx] <- median(x, na.rm = TRUE)
    }else{
      x[inx] <- median(x_tmp[-inx_rem], na.rm = TRUE)
    }
    c(x[-inx], x[inx])
  } else x
}

dat3 <- dat
dat3[] <- lapply(dat3, imputeStat, remove = FALSE)
identical(dat1, dat3)
#[1] TRUE

dat4 <- dat
dat4[] <- lapply(dat4, imputeStat)
identical(dat2, dat4)
#[1] TRUE

Данные.

dat <- read.table(text = "
    A   B   C   D   E   F
1   12  NA  NA  28  NA  NA
2   34  NA  NA  29  NA  34
3   98  98  NA  90  NA  67
4   29  34  84  NA  NA  67
5   84  NA  29  89  NA  45
6   87  76  28  28  34  67
7   87  23  28  20  24  34
8   32  98  28  49  23  67
9   43  43  27  39  56  30
10  93  23  85  90  46  65
", header = TRUE)
0
задан Antonio Bianca 19 January 2019 в 07:21
поделиться