Hi Ikki!
Thanks for your reply! I use awk bacause I'm more familiar with its sintax, i've just used sed a couple of time!
My files contain datas from genetic chips, and each file belongs to a person.
Each file has ~360000 lines.
You're right, I have more than one file shorter than the other..at the moment there are 95 shorter files. But they could increase, and yes, in shorter files it's possible that a line starting with cnvi0000004 is followed by a line starting with cnvi0000006 or cnvi0000008...it depends on how many records are missing for this person, but all input file are sorted by the first column.
As I said I've written an R-script that works, but it is extremely slow. In this script I compare a list of "complete" names with another and see if there are differences. Once i found elements that aren't in the short list, i add them in this list in order to have elements with same length. In this way I can merge all column and insert tabs instead of missing datas. I post the R-code:
Code:
#define file path
files_path="/home/###/###/people/"
#read all file names in the directory and save in a vector
only_files <- dir(path=files_path, pattern = "*.in")
files = paste(files_path,only_files, sep="")
#load files to create the "complete list" I need the first column that contain the name of the record
tot_file <- read.table(files[1], sep="\t", header=TRUE)[c(1,2,3)]
tot_file_noname <- cbind(Chr=tot_file$Chr, Position=tot_file$Position)
for (i in 1:length(files)) {
#
xx_file <- read.table(files[i], sep="\t", header=TRUE)[c(1,3,4)]
xx_file_noname <- cbind(xx_file$Position, xx_file$Log.R.Ratio)
#now I read each file and if i find some mismatch from the complete list
#I add them in the current xx_file object with value "NaN"
if (length(xx_file$name) != length(tot_file$name)){
print('different!')
mismatch=NULL
match <- tot_file$name %in% xx_file$name
for(i in 1:length(match)){ if (match[i]== FALSE){ mismatch = c(mismatch,i)}}
missing_snp = NULL
# add missing values
for (i in mismatch){
missing <- data.frame(Position = tot_file[i,]$Position, Log.R.Ratio="NaN")
missing_snp <- rbind(missing_snp, missing)
}
xx_file_noname <- rbind(xx_file[,c(2,3)], missing_snp)
}else{
print('equals!')
}
tot_file_noname = cbind(tot_file_noname, xx_file_noname[,2])
}
# write the "big" file
write.table(tot_file_noname, file = "gigante.dat", append = FALSE, quote = FALSE, sep = "\t", eol = "\n", na = "NaN", dec =".", row.names = FALSE, col.names =TRUE)
Now I'm trying to port this in a shell script to have a faster response. My purpose was to avoid files preprocessing if i can, because of the large amount of data stored in each file, if possible.
I tried your command also, and it is running, the only problem is to add manually 1664 columns for the cut command, but I think I can work on It!
Hope I have been clear enough, and greatly appreciate your help!
Hello,
My apologies if this has been posted elsewhere, I have had a look at several threads but I am still confused how to use these functions. I have two files, each with 5 columns:
File A: (tab-delimited)
PDB CHAIN Start End Fragment
1avq A 171 176 awyfan
1avq A 172 177 wyfany
1c7k A 2 7... (3 Replies)
I have n files (for ex:64 files) with one similar column. Is it possible to combine them all based on that column ?
file1
ax100 20 30 40
ax200 22 33 44
file2
ax100 10 20 40
ax200 12 13 44
file2
ax100 0 0 4
ax200 2 3 4 (9 Replies)
Hi Friends,
I have a file1 with 3400 records that are tab separated and I have a file2 with 6220 records. I want to merge both these files. I tried using join file1 and file2 after sorting. But, the records should be (3400*6220 = 21148000). Instead, I get only around 11133567. Is there anything... (13 Replies)
Hi,
I have 20 tab delimited text files that have a common column (column 1). The files are named GSM1.txt through GSM20.txt. Each file has 3 columns (2 other columns in addition to the first common column).
I want to write a script to join the files by the first common column so that in the... (5 Replies)
hi guys,
i need help
I need to join file2 to file1 when column 3 in my file1 and column 1 in my file2 in the same string
file1
AA|RR|ESKIM
RE|DD|RED
WE|WW|SUPSS
file2
ESKIM|ES
SUPSS|SS
Output
AA|RR|ESKIM|ES
RE|DD|RED|
WE|WW|SUPSS|SS (3 Replies)
Hello,
I have a file with 2 columns ( tableName , ColumnName) delimited by a Pipe like below . File is sorted by ColumnName.
Table1|Column1
Table2|Column1
Table5|Column1
Table3|Column2
Table2|Column2
Table4|Column3
Table2|Column3
Table2|Column4
Table5|Column4
Table2|Column5
From... (6 Replies)
Hello,
This post is already here but want to do this with another way
Merge multiples files with multiples duplicates keys by filling "NULL" the void columns for anothers joinning files
file1.csv:
1|abc
1|def
2|ghi
2|jkl
3|mno
3|pqr
file2.csv:
1|123|jojo
1|NULL|bibi... (2 Replies)
Discussion started by: yjacknewton
2 Replies
LEARN ABOUT PHP
db2_field_precision
DB2_FIELD_PRECISION(3) 1 DB2_FIELD_PRECISION(3)db2_field_precision - Returns the precision of the indicated column in a result setSYNOPSIS
int db2_field_precision (resource $stmt, mixed $column)
DESCRIPTION
Returns the precision of the indicated column in a result set.
PARAMETERS
o $stmt
- Specifies a statement resource containing a result set.
o $column
- Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a
string containing the name of the column.
RETURN VALUES
Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set,
db2_field_precision(3) returns FALSE.
SEE ALSO db2_field_display_size(3), db2_field_name(3), db2_field_num(3), db2_field_scale(3), db2_field_type(3), db2_field_width(3).
PHP Documentation Group DB2_FIELD_PRECISION(3)