Если остальное по переменным и слить в R - PullRequest
0 голосов
/ 29 марта 2019

У меня возникла проблема при объединении двух наборов данных.Предположим, есть 2 набора данных A и B. И A был сформирован путем слияния X и Y с целевой переменной как abc.

Поэтому, когда я объединяю A и B, результат уже сформированного A не отражается напоследний набор данных A и B. Наряду с этим, когда я объединяю A и B, количество моих записей данных увеличивается в конечном наборе данных.Я пытался использовать функции unique () и different (), но не смог применить их к определенной ключевой переменной, такой как AgreementID.

1 Ответ

0 голосов
/ 29 марта 2019

Добро пожаловать в stackoverflow!

Трудно точно понять, как решить вашу проблему, учитывая нехватку деталей.В будущем, пожалуйста, постарайтесь быть более точным и приведите пример того, как выглядят ваши данные.

Я полагаю, что ваши два набора данных A и B являются фреймами данных.Вместо слияния попробуйте cbind.Конечно, cbind не будет работать, если ваши наборы данных имеют разное количество строк.Код ниже добавляет NA к кадру данных с наименьшим количеством строк.Это заставит оба фрейма данных иметь одинаковое количество строк, поэтому cbind будет работать.Это не самое элегантное решение, но оно может сработать.

if(nrow(A) > nrow(B)){
  num.rows <- nrow(A)
}else{
  num.rows <- nrow(B)
}

if (nrow(A) == num.rows){
  n = nrow(A) - nrow(B)
  new.rows <- data.frame(1:n)
  for(i in 1:nrow(new.rows)){
    new.rows[i,,] <- NA
}
B <- rbind(new.rows, B)

}else{
  n = nrow(B) - nrow(A)
  new.rows <- data.frame(1:n)
  for(i in 1:nrow(new.rows)){
  new.rows[i,,] <- NA
}
B <- rbind(new.rows, B)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...