Skip to content
Prev 325162 / 398503 Next

Combining CSV data

Hi,
If the dataset is like this with the comments in the order:
dat2<-read.table(text="
Row_ID_N,? Src_Row_ID,? DataN1
1a,????????????? 1,????????????????? This is comment 1
2a,????????????? 1,????????????????? This is comment 2
3a,????????????? 2,????????????????? This is comment 1
4a,????????????? 1,????????????????? This is comment 3
",sep=",",header=TRUE,stringsAsFactors=FALSE)
dat3<-read.table(text="
Row_ID_N,? Src_Row_ID,? DataN1
1a,????????????? 1,????????????????? This is comment 1
2a,????????????? 1,????????????????? This is comment 2
3a,????????????? 2,????????????????? This is comment 1?? #
4a,????????????? 1,????????????????? This is comment 3
5a,???????? 2,????????????????? This is comment 2? #
",sep=",",header=TRUE,stringsAsFactors=FALSE)


library(stringr)
library(plyr)
fun1<- function(data1,data2){
??? data2$DataN1<- str_trim(data2$DataN1)?? 
??????? res<- merge(data1,data2,by.x=1,by.y=2)
??? res1<- res[,-5]
??? res2<- ddply(res1,.(Row_ID_CR,Data1,Data2,Data3),summarize,DataN1=list(DataN1))
??? Mx1<- max(sapply(res2[,5],length))
??? res3<- data.frame(res2[,-5],do.call(rbind,lapply(res2[,5],function(x){
????????????????????????????????? c(x,rep(NA,Mx1-length(x)))
????????????????????????????????? })),stringsAsFactors=FALSE)
??? colnames(res3)[grep("X",colnames(res3))]<- paste0("DataComment",gsub("[[:alpha:]]","",colnames(res3)[grep("X",colnames(res3))]))
??? res3
??? }??? 

????? 
fun1(dat1,dat2)
#? Row_ID_CR??????????????? Data1??????? Data2??????? Data3????? DataComment1
#1???????? 1?????????????????? aa?????????? bb?????????? cc This is comment 1
#2???????? 2?????????????????? dd?????????? ee?????????? ff This is comment 1
#?????? DataComment2????? DataComment3
#1 This is comment 2 This is comment 3
#2????????????? <NA>????????????? <NA>
?fun1(dat1,dat3)
#? Row_ID_CR??????????????? Data1??????? Data2??????? Data3????? DataComment1
#1???????? 1?????????????????? aa?????????? bb?????????? cc This is comment 1
#2???????? 2?????????????????? dd?????????? ee?????????? ff This is comment 1
?# ???? DataComment2????? DataComment3
#1 This is comment 2 This is comment 3
#2 This is comment 2????????????? <NA>


Otherwise, you need to provide an example that matches the real dataset.
A.K.