Как выполнить привязку для (n-1) столбцов - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу выполнить простую следующую задачу;

Представьте себе фрейм данных с 3 строками и 5 столбцами;

  X1 X2 X3 X4 X5
1  1  2  3  4  5
2  3  4  5  6  7
3  2  3  4  5  6

Я хочу добавить еще одну строку констант только в последние 4 столбца

  X1 X2 X3 X4 X5
1  1  2  3  4  5
2  3  4  5  6  7
3  2  3  4  5  6
4     5  5  5  5

Как мне это сделать? заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

вот функция:

ваши входные данные:

df<-    
fread("  X1 X2 X3 X4 X5
1  1  2  3  4  5
      2  3  4  5  6  7
      3  2  3  4  5  6")

Пример данных:

a=df;b=rep(5,4)

функция:

    rbind.filling <- function(a,b) {
    n_col<-max(ncol(a),ncol(b))
    if(is.null(dim(a))) {a<-matrix(c(rep(NA,n_col-length(a)),a),nrow=1);;colnames(a)<-names(b)} else {
        b<-matrix(c(rep(NA,n_col-length(b)),b),nrow=1);colnames(b)<-names(a)}
    return(rbind(a,b))
}

функция вызова:

rbind.filling(a,b)
#    V1 V2 V3 V4 V5 V6
# 1:  1  1  2  3  4  5
# 2:  2  3  4  5  6  7
# 3:  3  2  3  4  5  6
# 4: NA NA  5  5  5  5

rbind.filling(b,a)
#    V1 V2 V3 V4 V5 V6
# 1: NA NA  5  5  5  5
# 2:  1  1  2  3  4  5
# 3:  2  3  4  5  6  7
# 4:  3  2  3  4  5  6
0 голосов
/ 26 апреля 2018

Предполагается, что ваш исходный кадр данных называется df, и у вас есть данные длиной ncol(df)-1 в векторе с именем data.to.add:

rbind(df, c(NA, data.to.add))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...