[R] What's wrong with my code? (Edited version-added my data)

Susie susiecrab_ling at hotmail.com
Tue Jul 12 19:11:26 CEST 2011


I've written out codes for one particular file, and now I want to generate
the same kind of graphs and files for the rest of similar data files.


For example, a file "8.csv" would look like such:

enc_callee	inout	o_duration	type
A	out	342	de
B	in	234	de
C	out	132	de
E	in	111	de
A	in	13	cf
H	in	15.7	cf
G	out	32	de
A	out	32	cf
I	in	14	de
K	in	189	de
J	out	34.1	cf
B	in	98.7	de
H	out	23	de
C	out	43	cf
H	in	567	cf
I	out	12	de
E	out	12	de
K	out	12	cf
B	in	1	cf
A	out	29	de
D	out	89	cf
J	in	302	de
H	in	12	cf
A	in	153	cf
C	out	233	de


My command to deal with this simple file would be:

eight <- read.csv(file="8.csv", header=TRUE, sep=",")
eightout <- subset(eight, inout=="out" & o_duration>0, select=c(inout,
enc_callee, o_duration))
f <- function(eightoutf) nrow(eightoutf)
eightnocalls <- ddply(eightout,.(enc_callee),f)
colnames(eightnocalls)[2] <- "nocalls"
eightout$nocalls <- eightnocalls$nocalls [match(eightout$enc_callee,
eightnocalls$enc_callee)]
eightout=data.frame(eightout,"time"=c(1:nrow(eightout)))
plot(eightout$time,eightout$nocalls)
write.csv(eightout, "eightM.csv", row.names=FALSE)	


And then, R will produce "eightM.csv" as such:

   inout enc_callee o_duration nocalls time
1    out          A      342.0       3        1
3    out          C      132.0       3        2
7    out          G       32.0       1        3
8    out          A       32.0       3        4
11   out          J       34.1       1        5
13   out          H       23.0       1       6
14   out          C       43.0       3       7
16   out          I       12.0       1       8
17   out          E       12.0       1      9
18   out          K       12.0       1      10
20   out          A       29.0       3      11
21   out          D       89.0       1     12
25   out          C      233.0       3     13

I will also get a plot
http://r.789695.n4.nabble.com/file/n3662910/eightM.png 


What I want to do now, is that I have a few hundred similar files, and I
want to generate the same type of plots and files, so I've written the
following codes, however, R states that there's some error. I've tried
editing many times but wasn't successful. 


my.files <- list.files()
for (i in 1: length(my.files)) {
temp.dat <- read.csv(my.files[i])
eight <- read.csv(file="8.csv", header=TRUE, sep=",")
eightout <- subset(eight, inout=="out" & o_duration>0, select=c(inout,
enc_callee, o_duration))
f <- function(eightoutf) nrow(eightoutf)
eightnocalls <- ddply(eightout,.(enc_callee),f)
colnames(eightnocalls)[2] <- "nocalls"
eightout$nocalls <- eightnocalls$nocalls [match(eightout$enc_callee,
eightnocalls$enc_callee)]
eightout=data.frame(eightout,"time"=c(1:nrow(eightout)))
plot(eightout$time,eightout$nocalls)
write.csv(eightout, "eight.csv", row.names=FALSE)	
pdf(paste(Sys.Date(),"_",my.files[i],"_.pdf", sep=""))
plot(temp.dat$time, temp.dat$nocalls, main=my.files[i])
dev.off() 
write.csv(temp.dat, paste(Sys.Date(),"_",my.files[i],"_.csv", sep=""),
row.names=FALSE)
}


R says:
need finite 'xlim' values In addition: 
Warning messages: 1: In min(x) : no non-missing arguments to min; returning
Inf 
                           2: In max(x) : no non-missing arguments to max;
returning -Inf 
                           3: In min(x) : no non-missing arguments to min;
returning Inf 
                           4: In max(x) : no non-missing arguments to max;
returning -Inf



I wonder what went wrong with my codes, please help me!
Thank you very much!!

--
View this message in context: http://r.789695.n4.nabble.com/What-s-wrong-with-my-code-Edited-version-added-my-data-tp3662910p3662910.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list