[R-sig-Geo] Fwd: Digit positions in writing files

马可 wul1984 at gmail.com
Wed Dec 1 13:36:01 CET 2010


Hi, romunov:

Sorry, I am quite unfamiliar with the mail system, and send the
example only to Roman:

This is the data segment and script that I used to replace the
coordinate, and the result is constant space in between each columns:

####old coordinates
#colnames
##site prec site   lat    lon
 7969    0 55248   32.30   84.05
 7970    3 55279   31.37   90.02
 7971    0 55294   32.27   91.67
 7972    0 55299   31.48   92.07
 7973    0 55437   30.55   81.43
 7974    0 55472   30.95   88.63
 7975    0 55493   30.73   92.45
 7976    0 55569   29.07   87.68
 7977    1 55578   29.25   88.88
 7978    0 55591   29.67   91.13
 7979    0 55598   29.23   91.77
 7980    2 55664   28.63   87.08
 7981    0 55680   29.00   89.63
 7982    0 55690   28.70   91.63
 7983   12 55696   28.42   92.47
###new coordinates
#site		lat		lon
55248	32.15	84.42
55294	32.35	91.1
55437	30.28	81.25
55493	30.48	91.1
55569	29.08	87.6
55598	29.25	91.77
55680	28.92	89.6
55690	27.98	91.95
56202	30.67	93.28
56312	29.67	94.33

##My searching ID
findlist<-c(55248,55294,55437,55493,55569,55598,55680,55690)

old<-read.table('old.txt',head=F,sep='')
names(old)<-c('ID','value','site','lat','lon')
new<-read.table('new.txt',head=F,sep='')
names(x)<-c('site','lat','lon')
for (j in findlist){
old$lat[old$site==j]<-new$lat[new$site==j]
old$lon[old$site==j]<-new$lon[new$site==j]
}
write.table(old,'replaced.txt',row.names = F,col.names =F,eol='\r',sep='   ')

The script looks very silly, but that what I can do in my skill.

My aim again is to obtain the replaced.txt that confirm to the
required format, ie: constant digit length for each column, not
constant space in between.
Anyone could help me out?

Cheers,
Marco


2010/12/1 romunov <romunov at gmail.com>:
> Oh, I missed one function. Try cat(paste(column1...)). This should get rid
> of the start/end quotation marks.
>
>
>
>
> On Wed, Dec 1, 2010 at 1:29 PM, romunov <romunov at gmail.com> wrote:
>>
>> It would pay off if you provide a minimal reproducible example of working
>> code. That way, you higher you chance of getting an answer (faster).
>>
>> Cheers,
>> Roman
>>
>>
>>
>> On Wed, Dec 1, 2010 at 1:27 PM, 马可 <wul1984 at gmail.com> wrote:
>>>
>>> Hi, romunov:
>>>
>>> Unfortunately, the space varies, and I also tried to paste the column
>>> with space of different blanks, but the output then becomes a
>>> character, with quote marks outside of the columns.
>>>
>>> However, thanks very much, and I will try to post the problem in the
>>> stackoverflow!
>>>
>>> Best Regards~
>>> Marco
>>>
>>>
>>> 2010/12/1 romunov <romunov at gmail.com>:
>>> > If you have R related questions that are not directly linked to some
>>> > specific topic (i.e. spatial analysis), you might have better luck @
>>> > stackoverflow. I use it every day and I think it's a great tool. If you
>>> > don't know it yet, have a look @
>>> > http://stackoverflow.com/questions/tagged/r
>>> >
>>> > Cheers,
>>> > Roman
>>> >
>>> >
>>> >
>>> > On Wed, Dec 1, 2010 at 1:20 PM, 马可 <wul1984 at gmail.com> wrote:
>>> >>
>>> >> Sorry, I forget to sent the reply to the list:
>>> >>
>>> >>
>>> >> Hi Roman:
>>> >>
>>> >> Thanks for posting~
>>> >>
>>> >> This is the data segment and script that I used to replace the
>>> >> coordinate,
>>> >> and the result is constant space in between each columns:
>>> >>
>>> >> ####old coordinates
>>> >> #colnames
>>> >> ##site prec site   lat    lon
>>> >>  7969    0 55248   32.30   84.05
>>> >>  7970    3 55279   31.37   90.02
>>> >>  7971    0 55294   32.27   91.67
>>> >>  7972    0 55299   31.48   92.07
>>> >>  7973    0 55437   30.55   81.43
>>> >>  7974    0 55472   30.95   88.63
>>> >>  7975    0 55493   30.73   92.45
>>> >>  7976    0 55569   29.07   87.68
>>> >>  7977    1 55578   29.25   88.88
>>> >>  7978    0 55591   29.67   91.13
>>> >>  7979    0 55598   29.23   91.77
>>> >>  7980    2 55664   28.63   87.08
>>> >>  7981    0 55680   29.00   89.63
>>> >>  7982    0 55690   28.70   91.63
>>> >>  7983   12 55696   28.42   92.47
>>> >> ###new coordinates
>>> >> #site lat lon
>>> >> 55248 32.15 84.42
>>> >> 55294 32.35 91.1
>>> >> 55437 30.28 81.25
>>> >> 55493 30.48 91.1
>>> >> 55569 29.08 87.6
>>> >> 55598 29.25 91.77
>>> >> 55680 28.92 89.6
>>> >> 55690 27.98 91.95
>>> >> 56202 30.67 93.28
>>> >> 56312 29.67 94.33
>>> >>
>>> >> ##My searching ID
>>> >> findlist<-c(55248,55294,55437,55493,55569,55598,55680,55690)
>>> >>
>>> >> old<-read.table('old.txt',head=F,sep='')
>>> >> names(old)<-c('ID','value','site','lat','lon')
>>> >> new<-read.table('new.txt',head=F,sep='')
>>> >> names(x)<-c('site','lat','lon')
>>> >> for (j in findlist){
>>> >> old$lat[old$site==j]<-new$lat[new$site==j]
>>> >> old$lon[old$site==j]<-new$lon[new$site==j]
>>> >> }
>>> >> write.table(old,'replaced.txt',row.names = F,col.names
>>> >> =F,eol='\r',sep='
>>> >> ')
>>> >>
>>> >> The script looks very silly, but that what I can do in my skill.
>>> >>
>>> >> My aim again is to obtain the replaced.txt that confirm to the
>>> >> required
>>> >> format, ie: constant digit length for each column, not constant space
>>> >> in
>>> >> between.
>>> >> Anyone could help me out?
>>> >>
>>> >> Cheers,
>>> >> Marco
>>> >>
>>> >>
>>> >> 2010/12/1 Roman Luštrik <roman.lustrik at gmail.com>
>>> >>
>>> >> Hey,
>>> >> >
>>> >> > this sounds like an interesting problem. I may be a bit dense, but
>>> >> > could
>>> >> > you elaborate a bit more?
>>> >> >
>>> >> > Cheers,
>>> >> > Roman
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Wed, Dec 1, 2010 at 11:41 AM, 马可 <wul1984 at gmail.com> wrote:
>>> >> >
>>> >> >> Hi, list:
>>> >> >>
>>> >> >> I am processing a kind of data which has very strict format on
>>> >> >> digit
>>> >> >> position, ie., for the first column, the last digit should be in
>>> >> >> column
>>> >> >> 5,
>>> >> >> the second in column 10, and 16, 24, 32 for the 3rd, 4th, and 5th,
>>> >> >> respectively. Here is the segment:
>>> >> >>
>>> >> >>        29  -999  1051   69.58   23.53
>>> >> >>        30  -999  1052   70.67   23.67
>>> >> >>        31  -999  1053   70.68   23.68
>>> >> >>        32  -999  1055   71.10   24.00
>>> >> >>         .......
>>> >> >>   13642 -999 97890   -7.83  129.67
>>> >> >>   13643   30 97900   -7.98  131.30
>>> >> >>   13644  100 97980   -8.47  140.38
>>> >> >>   13645   66 98132   20.80  121.85
>>> >> >>   13646 -999 98133   19.27  121.47
>>> >> >>
>>> >> >> My aim is to replace the coordinates of certain rows using new
>>> >> >> coordinates,
>>> >> >> and put the whole file back into the same filee, but it seems that
>>> >> >> I
>>> >> >> can
>>> >> >> only get constant spaces between each column if I use write.table,
>>> >> >> with
>>> >> >> sep=' '. So, my question is, is there any way that I could get the
>>> >> >> desired
>>> >> >> format? By the way, I have more than 10,000 rows in each file
>>> >> >> (day),
>>> >> >> and
>>> >> >> 365
>>> >> >> days for each year, I think for me, R is the only way to do this.
>>> >> >>
>>> >> >> Thanks in advance~
>>> >> >>
>>> >> >> Best regards~
>>> >> >>
>>> >> >> Marco
>>> >> >>
>>> >> >>        [[alternative HTML version deleted]]
>>> >> >>
>>> >> >> _______________________________________________
>>> >> >> R-sig-Geo mailing list
>>> >> >> R-sig-Geo at r-project.org
>>> >> >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>> >> >>
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > In God we trust, all others bring data.
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> -------------------------------------------------------
>>> >> Chinese Ecological Research Network,
>>> >> Institute of Geographical Science and Natural Resource Research,
>>> >>  Chinese Academy Of Science,
>>> >> 100101, Beijing
>>> >> Tel: (86)-10-64880 9809
>>> >>
>>> >>        [[alternative HTML version deleted]]
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> R-sig-Geo mailing list
>>> >> R-sig-Geo at r-project.org
>>> >> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > In God we trust, all others bring data.
>>> >
>>>
>>>
>>>
>>> --
>>> -------------------------------------------------------
>>> Chinese Ecological Research Network,
>>> Institute of Geographical Science and Natural Resource Research,
>>>  Chinese Academy Of Science,
>>> 100101, Beijing
>>> Tel: (86)-10-64880 9809
>>
>>
>>
>> --
>> In God we trust, all others bring data.
>
>
>
> --
> In God we trust, all others bring data.
>



-- 
-------------------------------------------------------
Chinese Ecological Research Network,
Institute of Geographical Science and Natural Resource Research,
 Chinese Academy Of Science,
100101, Beijing
Tel: (86)-10-64880 9809



More information about the R-sig-Geo mailing list