Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Interpolation if there is no exact match for value Post 302901146 by kush on Monday 12th of May 2014 10:18:34 AM
Old 05-12-2014
Quote:
Originally Posted by Scrutinizer
Another one, which assumes that the x values are in ascending order and it will interpolate and extrapolate if x is beyond the boundaries in file2
Code:
awk '
  FNR==1 {
    next                                          # skip the headers
  }

  FNR==NR {                                       # when reading the first file
    P[$1]=$2                                      # fill array P with points
    I[i++]=$1                                     # fill array I with point indices
    next
  }

  {
    while (j==0 || ($1>t && j+1 in I)) {          # determine if shift is needed to next index, do not shift beyond rightmost
      s=I[j]                                      # set s to next left index
      t=I[j+1]                                    # set t to next right index
      j++                                         # increase index
    }
    print $1, $2, P[s]+($1-s)*(P[t]-P[s])/(t-s)   # interpolate / extrapolate and print
  } 
' file2 file

Ouput:
Code:
752566 rs3094315 2.01296
752721 rs3131972 2.01314
753541 rs2073813 2.01413
760300 rs11564776 2.01695


May I ask one more addition to this code? the number of digits in output in the third column is always 6, meaning the bigger number becomes, less decimal digits remain: e.g. when number in third column increases till 100 then i only have three digits after comma, but it is important, that I still get 6 digits after comma.
Could you, please, help with this also?
Sorry for bothering with such questions.
And thanks a lot to all in this very helpful forum!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl exact match

How to emulate grep -o option in perl. I mean to print not all line, only the exact match. echo "2A2 BB" | perl -ne 'print if /2A2/' 2A2 BB I want to print only 2A2. (2 Replies)
Discussion started by: mirusnet
2 Replies

2. Shell Programming and Scripting

exact string match ; search and print match

I am trying to match a pattern exactly in a shell script. I have tried two methods awk '/\<mpath${CURR_MP}\>/{print $1 $2}' multipath perl -ne '/\bmpath${CURR_MP}\b/ and print' /var/tmp/multipath Both these methods require that I use the escape character. I am guessing that is why... (8 Replies)
Discussion started by: bash_in_my_head
8 Replies

3. Shell Programming and Scripting

Exact match question

Hi, I have a file like follows . . . White.Jack.is.going.home Black.Jack.is.going.home Red.Jack.is.going.home Jack.is.going.home . . . when I make: cat <file> | grep -w "Jack.is.going.home" it gives: White.Jack.is.going.home Black.Jack.is.going.home Red.Jack.is.going.home... (4 Replies)
Discussion started by: salih81
4 Replies

4. Solaris

grep exact match

Hi This time I'm trying to grep for an exact match e.g cat.dog.horse.cow.bird.pig horse.dog.pig pig.cat.horse.dog horse dog dog pig.dog pig.dog.bird how do I grep for dog only so that a wc -l would result 2 in above case. Thanks in advance ---------- Post updated at 06:33 AM... (4 Replies)
Discussion started by: rob171171
4 Replies

5. Shell Programming and Scripting

Exact match and #

Hi friends, i am using the following grep command for exact word match: >echo "sachin#tendulkar" | grep -iw "sachin" output: sachin#tendulkar as we can see in the above example that its throwinng the exact match(which is not the case as the keyword is sachin and string is... (6 Replies)
Discussion started by: neelmani
6 Replies

6. Shell Programming and Scripting

Match exact and append zero

file 11 2 12 6 13 7 114 6 011 7 if I'm searching for 11, output needed is output: 11 2 011 7 Code: awk '$1 ~ /^11$/' file I used the above to match exact, but it avoiding "011 7" line too, how to resolve this? (6 Replies)
Discussion started by: Roozo
6 Replies

7. Shell Programming and Scripting

Exact match using sed

I would like replace all the rows in a file if a row has an exact match to number say 21 in a tab delimited file. I want to delete the row only if it has 21 any of the rows but it should not delecte the row that has 542178 or 563421. I tried this sed '/\<21\>/d' ./inputfile > output.txt ... (7 Replies)
Discussion started by: Kanja
7 Replies

8. UNIX for Dummies Questions & Answers

Exact match question

Hi guys, I am using Centos 6.3. Actually I posted similar question but I still have some minor problem need be fixed. I have two files, file1:target: gi|57529786|ref|NM_001006513.1| mfe: -31.4 kcal/mol p-value: 0.006985 target: gi|403048743|ref|NM_001271159.1| mfe: -29.6 kcal/mol p-value:... (11 Replies)
Discussion started by: yuejian
11 Replies

9. Shell Programming and Scripting

Replacing exact match

Hi All, My Input file contains a 1000’s of lines in which I have to replace a a string to the other. Here the problem is, I have the lines in my Input as below. Cable Yes && !Pay TV && !ADS \noUE \Label="Cable Yes && !Pay TV && !ADS" I want to replace exactly the string Cable Yes &&... (37 Replies)
Discussion started by: am24
37 Replies

10. Shell Programming and Scripting

awk to update file based on partial match in field1 and exact match in field2

I am trying to create a cronjob that will run on startup that will look at a list.txt file to see if there is a later version of a database using database.txt as the source. The matching lines are written to output. $1 in database.txt will be in list.txt as a partial match. $2 of database.txt... (2 Replies)
Discussion started by: cmccabe
2 Replies
seek(n) 						       Tcl Built-In Commands							   seek(n)

__________________________________________________________________________________________________________________________________________________

NAME
seek - Change the access position for an open channel SYNOPSIS
seek channelId offset ?origin? _________________________________________________________________ DESCRIPTION
Changes the current access position for channelId. ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, stdout, or stderr), the return value from an invocation of open or socket, or the result of a channel creation command provided by a Tcl extension. The offset and origin arguments specify the position at which the next read or write will occur for channelId. Offset must be an integer (which may be negative) and origin must be one of the following: start The new access position will be offset bytes from the start of the underlying file or device. current The new access position will be offset bytes from the current access position; a negative offset moves the access position back- wards in the underlying file or device. end The new access position will be offset bytes from the end of the file or device. A negative offset places the access position before the end of file, and a positive offset places the access position after the end of file. The origin argument defaults to start. The command flushes all buffered output for the channel before the command returns, even if the channel is in nonblocking mode. It also discards any buffered and unread input. This command returns an empty string. An error occurs if this command is applied to channels whose underlying file or device does not support seeking. Note that offset values are byte offsets, not character offsets. Both seek and tell operate in terms of bytes, not characters, unlike read. EXAMPLES
Read a file twice: set f [open file.txt] set data1 [read $f] seek $f 0 set data2 [read $f] close $f # $data1 == $data2 if the file wasn't updated Read the last 10 bytes from a file: set f [open file.data] # This is guaranteed to work with binary data but # may fail with other encodings... fconfigure $f -translation binary seek $f -10 end set data [read $f 10] close $f SEE ALSO
file(n), open(n), close(n), gets(n), tell(n), Tcl_StandardChannels(3) KEYWORDS
access position, file, seek Tcl 8.1 seek(n)
All times are GMT -4. The time now is 09:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy