Thanks so much A.K. It worked so well. The results are perfect.

Atem.



________________________________


Cc: R help <r-help@r-project.org> 
Sent: Sunday, April 28, 2013 1:00 PM
Subject: Re: Re: [R] Help


Hi,
You can try this:
Here, I am exporting to the working directory:
temp<- list.files(pattern="*.txt")
 temp
#[1] "dt306A009.txt" "dt306A010.txt"
#here added "_new" to distinguish the new files

 lapply(seq_along(res),function(i) 
write.table(res[[i]],paste0(gsub(".txt","",temp[i]),"_new",".txt"),row.names=FALSE,quote=FALSE))

#or write as .csv.
 lapply(seq_along(res),function(i) 
write.csv(res[[i]],gsub(".txt",".csv",temp[i]),row.names=FALSE,quote=FALSE)


A.K.



________________________________


Sent: Sunday, April 28, 2013 1:07 PM
Subject: Re: Re: [R] Help



Hi A.K,

It works so well with all the 110 files. 
However, how can I export the files such that the original names of the input 
files under 'temp' are exported to my output folder?

I did it using the code you provided:
**********************************************************************************************
apply(seq_along(res),function(i)
  write.table(res[[i]],paste0("file",i,".txt"),row.names=FALSE,quote=FALSE))
******************************************************************************************
However, I wish to paste the strings below instead of sequentially numbered 
'paste0("file",i,".txt")'
The strings are my inventory to know which rainfall station belongs to which 
location in space.



> temp
  [1] "dt3011120.txt" "dt3011240.txt" "dt3011887.txt" "dt3012205.txt" 
"dt3012280.txt"
  [6] "dt3015405.txt" "dt3015523.txt" "dt3015960.txt" "dt3016119.txt" 
"dt3022136.txt"
 [11] "dt3023560.txt" "dt3023722.txt" "dt3024920.txt" "dt3025770.txt" 
"dt3031093.txt"
 [16] "dt3031400.txt" "dt3031F5F.txt" "dt3032800.txt" "dt3033880.txt" 
"dt3034480.txt"
 [21] "dt3034720.txt" "dt3035206.txt" "dt3036682.txt" "dt3044923.txt" 
"dt3050519.txt"
 [26] "dt3051R4R.txt" "dt3053250.txt" "dt3053536.txt" "dt3060L20.txt" 
"dt3061200.txt"
 [31] "dt3062246.txt" "dt3062427.txt" "dt3062693.txt" "dt3065999.txt" 
"dt3067372.txt"
 [36] "dt306A009.txt" "dt3070600.txt" "dt3072539.txt" "dt3072658.txt" 
"dt3072723.txt"
 [41] "dt3072920.txt" "dt3073641.txt" "dt3075040.txt" "dt3076908.txt" 
"dt3081680.txt"
 [46] "dt4010400.txt" "dt4011441.txt" "dt4011846.txt" "dt4012120.txt" 
"dt4012400.txt"
 [51] "dt4013480.txt" "dt4013660.txt" "dt4014913.txt" "dt4015322.txt" 
"dt4015360.txt"
 [56] "dt4015960.txt" "dt4016560.txt" "dt4019040.txt" "dt4019082.txt" 
"dt4020160.txt"
 [61] "dt4021520.txt" "dt4023240.txt" "dt4024080.txt" "dt4028060.txt" 
"dt402DAF0.txt"
 [66] "dt4038400.txt" "dt4038740.txt" "dt4043900.txt" "dt4045605.txt" 
"dt4047241.txt"
 [71] "dt4048520.txt" "dt4055079.txt" "dt4055736.txt" "dt4056120.txt" 
"dt4056240.txt"
 [76] "dt4057120.txt" "dt4060982.txt" "dt4061632.txt" "dt4061861.txt" 
"dt4063560.txt"
 [81] "dt4063755.txt" "dt4064150.txt" "dt4064600.txt" "dt4068559.txt" 
"dt4068840.txt"
 [86] "dt406QLD0.txt" "dt4075518.txt" "dt4083323.txt" "dt4086000.txt" 
"dt5010240.txt"
 [91] "dt5010485.txt" "dt5010640.txt" "dt5012080.txt" "dt5012321.txt" 
"dt5020882.txt"
 [96] "dt5021849.txt" "dt50220M0.txt" "dt5022759.txt" "dt5022780.txt" 
"dt5023222.txt"
[101] "dt5030080.txt" "dt5030203.txt" "dt5030282.txt" "dt5031039.txt" 
"dt5031111.txt"
[106] "dt5031200.txt" "dt5031320.txt" "dt5032162.txt" "dt5040680.txt" 
"dt5041535.txt"
[111] "dt5042004.txt" "dt5042800.txt" "dt5050920.txt" "dt5052880.txt" 
"dt5060606.txt"
[116] "dt5061001.txt" "dt5061648.txt" "dt5062922.txt" "dt506B047.txt"

Thanks so much.
Atem.

________________________________


Sent: Saturday, April 27, 2013 10:57 PM
Subject: Re: Re: [R] Help




HI Atem,
No problem.  Have u tried the code with the 110 files?


________________________________


Sent: Sunday, April 28, 2013 12:54 AM
Subject: Re: Re: [R] Help



Oh! I am so happy about this. Thanks so much A.K. You saved me more than 40 
hours of work. All other files are similar. Thanks so much.

Atem.



________________________________


Cc: R help <r-help@r-project.org> 
Sent: Saturday, April 27, 2013 10:47 PM
Subject: Re: Re: [R] Help


Hi
Atem,

I was able to read the file and removed those suffix letters.  The file had a 
lot of formatting issues.  I don't know about the formatting in your other 
files.  Also, there were lines  that differ in the number of elements. 

If it is similar to the one you send, you can try this:
  con<- file("dt306A009.txt")
 Lines1<- readLines(con)
 close(con)
 Lines2<- Lines1[-1]
 length(Lines2)
#[1]
1140
library(stringr)
Lines3<-str_split(Lines2,"-9999.99M")
Lines4<- 
str_trim(unlist(lapply(Lines3,function(x){x[x==""]<-NA;paste(x,collapse=" ")})))
Lines5<-gsub("(\\d+)[A-Za-z]","\\1",Lines4)
res<-read.table(text=Lines5,sep="",header=FALSE,fill=TRUE)
 head(res)
#    V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
#1 1917  1 NA NA NA NA NA NA NA  NA  NA  NA  NA 
NA  NA  NA  NA  NA  NA  NA
#2 1917  2 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#3 1917  3 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#4 1917  4 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#5
1917  5 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#6 1917  6  0  0  0  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0
#    V21 V22  V23  V24 V25 V26 V27 V28 V29 V30  V31 V32 V33
#1   
NA  NA   NA   NA  NA  NA  NA  NA  NA  NA   NA  NA  NA
#2    NA  NA   NA   NA  NA  NA  NA  NA  NA  NA   NA  NA  NA
#3    NA  NA   NA   NA  NA  NA  NA  NA  NA  NA   NA  NA  NA
#4    NA  NA  
NA   NA  NA  NA  NA  NA  NA  NA   NA  NA  NA
#5    NA  NA   NA   NA  NA  NA  NA  NA  NA  NA   NA  NA  NA
#6 14.47 2.3 3.34 1.05   0   0   0   0   0   0 1.57   0  NA
temp<- list.files(pattern="*.txt")

#Reading multiple files. In this
case, I am reading the same file saved with different names.
 temp
#[1] "dt306A009.txt" "dt306A010.txt"
res<-lapply(temp,function(x) {con<- file(x); Lines1<- readLines(con); 
close(con);Lines2<-Lines1[-1]; Lines3<- str_split(Lines2,"-9999.99M");Lines4<- 
str_trim(unlist(lapply(Lines3,function(x){x[x==""]<-NA;paste(x,collapse=" 
")})));Lines5<- gsub("(\\d+)[A-Za-z]","\\1",Lines4);res<- 
read.table(text=Lines5,sep="",header=FALSE,fill=TRUE)
})
 lapply(res,head,2)
#[[1]]
#    V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21
#1 1917  1 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#2 1917  2 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#  V22 V23 V24 V25 V26 V27 V28 V29 V30
V31 V32 V33
#1  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#
#[[2]]
#    V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21
#1 1917  1 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA 
NA  NA  NA
#2 1917  2 NA NA NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#  V22 V23 V24 V25 V26 V27 V28 V29 V30 V31 V32 V33
#1  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
#2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA 
NA


A.K.



________________________________


Sent: Saturday, April 27, 2013 11:14 PM
Subject: Re: Re: [R] Help





 Hi A.K,

Attached are example files. I have 110 of such and would like to
perform the analysis as described before. I would find T, F, Y, A, C, etc and 
delete them. The letters are affixed to values in the data just to communicate 
an idea. As before, find all -9999.99M and replace with NA.

Thanks so much.
Atem.




________________________________


Cc: R help <r-help@r-project.org> 
Sent: Saturday, April 27, 2013 7:53 PM
Subject: Re: Re: [R] Help






Hi,
If you wanted to delete "T", "C","A", "F" and "Y" and replace "-999.99M"
with NA, it is possible, but the result would be stored in a list if 
the number of elements deleted from each of the columns are different.   As you 
didn't provide any reproducible example, I don't know whether equal number of 
elements are replaced from each columns or not..

set.seed(28)
myfiles<- lapply(1:5,function(i)
as.data.frame(matrix(sample(c(LETTERS,"-999.99M"),40*i,replace=TRUE),ncol=(40*i)/8),stringsAsFactors=FALSE))
res<-lapply(myfiles,function(x){x[x=="-999.99M"]<-NA;lapply(x,function(y) 
y[!y%in%c("T","C","A","F","Y")])})
res[[1]]
#$V1
#[1] "M" "X" "U" "X"
#
#$V2
#[1] "P" "Z" "S" "R" "Q" "W" "N" "I"
#
#$V3
#[1] "K" "S" NA  "M" "G" "G" "Z"
#
#$V4
#[1] "O" "M" "G" "G" "B" "X" "M"
#
#$V5
#[1] "I" "X" "P" "K" "R"
"K"

A.K.
________________________________


Cc: R help <r-help@r-project.org> 
Sent: Saturday, April 27, 2013 9:41 PM
Subject: Re: Re: [R] Help







Hi A.K,


Thanks for  this great help. I wish to find -999.99M and replace with NA. All 
others like T, A, F etc should be deleted from the files.





Thanks for much.

------ Original Message ------



From : arun
>To : Zilefac Elvis;
>Cc : R help;
>Sent :
27-04-2013 16:29
>Subject : Re: [R] Help
> 
>HI, "Find 'T','C','A','F' and 'Y',
delete them from all the 110 files"
I assume that you meant to replace it with NA. set.seed(28)
myfiles<- lapply(1:5,function(i) 
as.data.frame(matrix(sample(c(LETTERS,"-999.99M"),40*i,replace=TRUE),ncol=(40*i)/8),stringsAsFactors=FALSE))
 myfiles[[1]]
#  V1 V2       V3 V4 V5
#1  A  P
       K  O  Y
#2  C  Z        S  M  Y
#3  M  S -999.99M  G  I
#4  X  R        M  G  X
#5  C  Q        G  A  P
#6  U  W        G  B  K
#7  A  N        Z  X
 R
#8  X  I        F  M  K
res<-lapply(myfiles,function(x) {x1<-unlist(x); x1[x1%in% 
c("-999.99M","T","C","A","F","Y")]<-NA;as.data.frame(matrix(x1,ncol=ncol(x)),stringsAsFactors=FALSE)})
 res[[1]] #   V1 V2   V3   V4   V5
#1    P    K    O  
#2    Z    S
   M  
#3    M  S      G    I
#4    X  R    M    G    X
#5    Q    G      P
#6    U  W    G    B    K
#7    N    Z    X    R
#8    X  I 
    M    K lapply(seq_along(res),function(i)
write.table(res[[i]],paste0("file",i,".txt"),row.names=FALSE,quote=FALSE))
A.K. ----- Original Message -----
From: Zilefac Elvis  
To: "r-help@r-project.org"  
Cc: 
Sent: Saturday, April 27, 2013 11:20 AM
Subject: [R] Help Hello, I have a question and need your help
urgently. I am new to R but want to learn it. I have several files in a folder 
which I have imported to R using :
temp = list.files(pattern="*.txt")
>myfiles = lapply(temp, read.delim)
The resulting files are on the workspace stored as List[110]. So they are 110 
files in the list. Each file has several different columns and rows.
My question: I would like to find and replace -999.99M with NA; Find 
'T','C','A','F' and 'Y', delete them from all the 110 files.
Then, I want to write.table all
the corrected files back to a folder on my computer.
Thanks for your
help.
Atem. ________________________________
From: "r-help-requ...@r-project.org"   Sent: Friday, April 26, 2013 11:08 AM
Subject: confirm bfdc3137cee0135cf3c616295c9d0e2b3adfd392 Mailing list 
subscription confirmation notice for mailing list R-help We have
received a request from 129.132.148.130 for subscription of 
r-help@r-project.org mailing list.  To confirm that you want to be
added to this mailing list, simply reply to this message, keeping the
Subject: header intact.  Or visit this web page:    
https://stat.ethz.ch/mailman/confirm/r-help/bfdc3137cee0135cf3c616295c9d0e2b3adfd392
 Or include the following line -- and only the following line -- in a
message to r-help-requ...@r-project.org:    confirm 
bfdc3137cee0135cf3c616295c9d0e2b3adfd392 Note that simply sending a `reply' to 
this message should work from
most mail readers, since that usually leaves the Subject:
line in the
right form (additional "Re:" text in the Subject: is okay). If you do not wish 
to be subscribed to this list, please simply
disregard this message.  If you think you are being maliciously
subscribed to the list, or have any other questions, send them to
r-help-ow...@r-project.org.    [[alternative HTML version deleted]] 
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible
code.   
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to