[R] Appending data to a data.frame and writing a csv
Dear R helpers exposure - data.frame(id = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20), ead = c(9483.686,5,6843.4968,10509.37125,21297.8905,5,706152.8354, 62670.5625, 687.801995,50641.4875,59227.125,43818.5778,52887.72534,601788.7937, 56813.14859,4012356.056,1419501.179,210853.4743,749961,6599.0862), pd = c(0.0191,0.0050,0.0298,0.0449,0.0442,0.0479,0.0007,0.0203,0.0431,0.0069, 0.0122,0.0022,0.0016,0.0082,0.0109,0.0008,0.0142,0.0171,0.0276,0.0178), lgd = c(0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45, 0.45,0.45,0.45,0.45)) param - data.frame(alpha = 0.99, size = 50) # size is basically no of simulations n - length(exposure$id) id - exposure$id ead - exposure$ead lgd - exposure$lgd pd - exposure$pd alpha - param$alpha samplesize - param$size ## generate random numbers s.t. 1 = Default, 0 = no-default. L - matrix(data=NA, nrow=n, ncol=samplesize, byrow=TRUE) for(i in 1:n) L[i,] - rbinom(n=samplesize, size=1, prob=exposure$pd[i]) # # compute for each simulation p_loss - e_loss - u_loss - NULL for(i in 1:samplesize) { defaulting - subset(data.frame(id=exposure$id, ead=exposure$ead, lgd=exposure$lgd, pd=exposure$pd, loss=L[,i]), loss==1) p_loss[i] - sum(defaulting$ead * defaulting$lgd) e_loss[i] - sum(defaulting$ead * defaulting$lgd * defaulting$pd) u_loss[i] - sum(sqrt((defaulting$ead*defaulting$lgd)^2*defaulting$pd - (defaulting$ead * defaulting$lgd * defaulting$pd)^2)) sim_data - data.frame(sim_no=rep(i,length(defaulting$id)), id=defaulting$id, ead=defaulting$ead, lgd=defaulting$lgd, pd=defaulting$pd) write.csv(sim_data, file='sim_data.csv', append=TRUE, row.names=FALSE) } For a given set of 0's and 1's (i.e. for each simulation and there are 50 simulations), first I filter all the entries corresponding to 0's i.e. for a given simulation, I need to store ead, lgd and pd pertaining to only non-zeros i.e. pertaining to 1. Thus, for each of these 50 simulations, I need to define a data.frame giving me filtered ead, lgd and pd and in teh end write a single file sim_data.csv I get following warnings. Warning messages: 1: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored 2: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored . . 50: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored Kindly guide Regards Vincy [[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.
Re: [R] Appending data to a data.frame and writing a csv
Hi Vincy, Please read the help file, particularly the part about write.csv and write.csv2 where it says These wrappers are deliberately inflexible: they are designed to ensure that the correct conventions are used to write a valid file. Attempts to change append, col.names, sep, dec or qmethod are ignored, with a warning. Use write.table instead. Best, Ista On Fri, Mar 25, 2011 at 8:55 AM, Vincy Pyne vincy_p...@yahoo.ca wrote: Dear R helpers exposure - data.frame(id = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20), ead = c(9483.686,5,6843.4968,10509.37125,21297.8905,5,706152.8354, 62670.5625, 687.801995,50641.4875,59227.125,43818.5778,52887.72534,601788.7937, 56813.14859,4012356.056,1419501.179,210853.4743,749961,6599.0862), pd = c(0.0191,0.0050,0.0298,0.0449,0.0442,0.0479,0.0007,0.0203,0.0431,0.0069, 0.0122,0.0022,0.0016,0.0082,0.0109,0.0008,0.0142,0.0171,0.0276,0.0178), lgd = c(0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45, 0.45,0.45,0.45,0.45)) param - data.frame(alpha = 0.99, size = 50) # size is basically no of simulations n - length(exposure$id) id - exposure$id ead - exposure$ead lgd - exposure$lgd pd - exposure$pd alpha - param$alpha samplesize - param$size ## generate random numbers s.t. 1 = Default, 0 = no-default. L - matrix(data=NA, nrow=n, ncol=samplesize, byrow=TRUE) for(i in 1:n) L[i,] - rbinom(n=samplesize, size=1, prob=exposure$pd[i]) # # compute for each simulation p_loss - e_loss - u_loss - NULL for(i in 1:samplesize) { defaulting - subset(data.frame(id=exposure$id, ead=exposure$ead, lgd=exposure$lgd, pd=exposure$pd, loss=L[,i]), loss==1) p_loss[i] - sum(defaulting$ead * defaulting$lgd) e_loss[i] - sum(defaulting$ead * defaulting$lgd * defaulting$pd) u_loss[i] - sum(sqrt((defaulting$ead*defaulting$lgd)^2*defaulting$pd - (defaulting$ead * defaulting$lgd * defaulting$pd)^2)) sim_data - data.frame(sim_no=rep(i,length(defaulting$id)), id=defaulting$id, ead=defaulting$ead, lgd=defaulting$lgd, pd=defaulting$pd) write.csv(sim_data, file='sim_data.csv', append=TRUE, row.names=FALSE) } For a given set of 0's and 1's (i.e. for each simulation and there are 50 simulations), first I filter all the entries corresponding to 0's i.e. for a given simulation, I need to store ead, lgd and pd pertaining to only non-zeros i.e. pertaining to 1. Thus, for each of these 50 simulations, I need to define a data.frame giving me filtered ead, lgd and pd and in teh end write a single file sim_data.csv I get following warnings. Warning messages: 1: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored 2: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored . . 50: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored Kindly guide Regards Vincy [[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. -- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org __ 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.
Re: [R] Appending data to a data.frame and writing a csv
Dear Mr Ista Zahn, Thanks a lot for your suggestion. I had also realized that if I need to write.csv command should be out of loop. At first, I need to construct the data.frame. Actually appending this data.frame is causing me the problem and not writing the csv file. That particular command will be executed outside the loop. Once this is generated, writing of the csv file should not be problem outside the loop. Regards Vincy --- On Fri, 3/25/11, Ista Zahn iz...@psych.rochester.edu wrote: From: Ista Zahn iz...@psych.rochester.edu Subject: Re: [R] Appending data to a data.frame and writing a csv To: Vincy Pyne vincy_p...@yahoo.ca Cc: r-help@r-project.org Received: Friday, March 25, 2011, 4:02 PM Hi Vincy, Please read the help file, particularly the part about write.csv and write.csv2 where it says These wrappers are deliberately inflexible: they are designed to ensure that the correct conventions are used to write a valid file. Attempts to change append, col.names, sep, dec or qmethod are ignored, with a warning. Use write.table instead. Best, Ista On Fri, Mar 25, 2011 at 8:55 AM, Vincy Pyne vincy_p...@yahoo.ca wrote: Dear R helpers exposure - data.frame(id = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20), ead = c(9483.686,5,6843.4968,10509.37125,21297.8905,5,706152.8354, 62670.5625, 687.801995,50641.4875,59227.125,43818.5778,52887.72534,601788.7937, 56813.14859,4012356.056,1419501.179,210853.4743,749961,6599.0862), pd = c(0.0191,0.0050,0.0298,0.0449,0.0442,0.0479,0.0007,0.0203,0.0431,0.0069, 0.0122,0.0022,0.0016,0.0082,0.0109,0.0008,0.0142,0.0171,0.0276,0.0178), lgd = c(0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45, 0.45,0.45,0.45,0.45)) param - data.frame(alpha = 0.99, size = 50) # size is basically no of simulations n - length(exposure$id) id - exposure$id ead - exposure$ead lgd - exposure$lgd pd - exposure$pd alpha - param$alpha samplesize - param$size ## generate random numbers s.t. 1 = Default, 0 = no-default. L - matrix(data=NA, nrow=n, ncol=samplesize, byrow=TRUE) for(i in 1:n) L[i,] - rbinom(n=samplesize, size=1, prob=exposure$pd[i]) # # compute for each simulation p_loss - e_loss - u_loss - NULL for(i in 1:samplesize) { defaulting - subset(data.frame(id=exposure$id, ead=exposure$ead, lgd=exposure$lgd, pd=exposure$pd, loss=L[,i]), loss==1) p_loss[i] - sum(defaulting$ead * defaulting$lgd) e_loss[i] - sum(defaulting$ead * defaulting$lgd * defaulting$pd) u_loss[i] - sum(sqrt((defaulting$ead*defaulting$lgd)^2*defaulting$pd - (defaulting$ead * defaulting$lgd * defaulting$pd)^2)) sim_data - data.frame(sim_no=rep(i,length(defaulting$id)), id=defaulting$id, ead=defaulting$ead, lgd=defaulting$lgd, pd=defaulting$pd) write.csv(sim_data, file='sim_data.csv', append=TRUE, row.names=FALSE) } For a given set of 0's and 1's (i.e. for each simulation and there are 50 simulations), first I filter all the entries corresponding to 0's i.e. for a given simulation, I need to store ead, lgd and pd pertaining to only non-zeros i.e. pertaining to 1. Thus, for each of these 50 simulations, I need to define a data.frame giving me filtered ead, lgd and pd and in teh end write a single file sim_data.csv I get following warnings. Warning messages: 1: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored 2: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored . . 50: In write.csv(sim_data, file = sim_data.csv, append = TRUE, ... : attempt to set 'append' ignored Kindly guide Regards Vincy [[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. -- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.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.