Пример данных:
> d1
ID Q1 Q2
1 1 aa bb
2 2 cc 12
3 3 q z
> d2
ID Q1 Q2
1 1 A B
2 2 p l_
3 3 23 r
строка-связывания: * +1004 *
> d = rbind(d1, d2)
сортировка по ID:
> d = d[order(d$ID),]
заменить дублированный идентификатор чем-то, например, NA:
> d$ID[duplicated(d$ID)]=NA
работа выполнена:
> d
ID Q1 Q2
1 1 aa bb
4 NA A B
2 2 cc 12
5 NA p l_
3 3 q z
6 NA 23 r
>
Если вы хотите создать объединенные ячейки с \n
, разделяющими их, то это:
> cbind(ID=d1$ID, setNames(do.call(cbind.data.frame,lapply(c("Q1","Q2"), function(n){paste(d1[[n]],d2[[n]],sep="\n")})),c("Q1","Q2")))
ID Q1 Q2
1 1 aa\nA bb\nB
2 2 cc\np 12\nl_
3 3 q\n23 z\nr