Hi thankyou for your reply
I want to plot SD of two groups of files, with different length
I have slightly solved this by 
Y2 <- as.data.table((log.norm.counts.a[,1:6]), keep.rownames = "geneid")
X2 <- as.data.table((log.norm.counts.b[,1:6]), keep.rownames = "geneid")
m3 <- merge(X2,Y2,by=c("geneid"))
head(m3)
dim(m3)
[1] 1500    13
X1 <- m3[,2:7]
head(X1[,1:6])
Y1 <- m3[,8:13]
head(Y1)
but when i try 
a<- as.data.table(rowSds(X1))
b<- as.data.table(rowSds(Y1))
plot(a,b)
or 
plot(rowSds(m3[,2:7]),rowSds(m3[,8:13]))
it gives error 
Error in rowVars(x, rows = rows, cols = cols, na.rm = na.rm, center = center,  : 
  Argument 'x' must be a matrix or a vector.
even
class(m3)
[1] "matrix"
                    
                
                 
You can make changes in the object you create by reading the file. Please search Stack Overflow to understand how to manipulate data frames.
Can you show us a subset of your dataframe ?
The error message say that you do not have the same length between
log.norm.counts.a[,1]andlog.norm.counts.a[,2]. Have you tried to check the content of these two columns ?