Lauri Nikkinen
2008-Feb-29 06:21 UTC
[R] How to export tables in list separately using write.table or sink?
R users, My intention is to take factors out of DF, create list of tables and export these tables separately using write.table or sink function. write.table writes tables out as DF:s, should I use sink instead? Here is my example: a <- data.frame( indx = 1:20, var1 = rep(c("I20", "I40", "A50", "B60"), each=5), var1_lab= rep(c("cat", "dog", "mouse", "horse"), each=5), var2 = rep(c("B20", "X40", "D50", "G60"), each=5), var2_lab= rep(c("car", "bicycle", "train", "bus"), each=5)) g <- unlist(lapply(a, is.factor)) g <- a[g] g.tablist <- lapply(g, function(x) table(x, g$var1)) for (i in g.tablist) write.table(i , paste(Sys.Date(), i, sep="")) Warning messages: 1: In if (file == "") file <- stdout() else if (is.character(file)) { : the condition has length > 1 and only the first element will be used 2: In file(file, ifelse(append, "a", "w")) : or using lapply lapply(g.tablist, function(i) write.table(i , paste(Sys.Date(), i, sep=""))) $var1 NULL $var1_lab NULL $var2 NULL $var2_lab NULL Warning messages: 1: In if (file == "") file <- stdout() else if (is.character(file)) { : the condition has length > 1 and only the first element will be used 2: In file(file, ifelse(append, "a", "w")) : #or for (i in g.tablist) { sink(paste(i, ".txt.", sep="")) sink()} Warning messages: 1: In file(file, ifelse(append, "a", "w")) : only first element of 'description' argument used 2: In file(file, ifelse(append, "a", "w")) : only first element of 'description' argument used 3: In file(file, ifelse(append, "a", "w")) : only first element of 'description' argument used 4: In file(file, ifelse(append, "a", "w")) : only first element of 'description' argument used Thanks, Lauri
Henrique Dallazuanna
2008-Feb-29 11:22 UTC
[R] How to export tables in list separately using write.table or sink?
Try this: sapply(1:length(g.tablist), function(x)write.table(g.tablist[[x]], file=sprintf('Table%d.txt', x), quote=FALSE)) On 29/02/2008, Lauri Nikkinen <lauri.nikkinen at iki.fi> wrote:> R users, > > My intention is to take factors out of DF, create list of tables and > export these tables separately using write.table or sink function. > write.table writes tables out as DF:s, should I use sink instead? > > Here is my example: > > a <- data.frame( indx = 1:20, > var1 = rep(c("I20", "I40", "A50", "B60"), each=5), > var1_lab= rep(c("cat", "dog", "mouse", "horse"), each=5), > var2 = rep(c("B20", "X40", "D50", "G60"), each=5), > var2_lab= rep(c("car", "bicycle", "train", "bus"), each=5)) > > g <- unlist(lapply(a, is.factor)) > g <- a[g] > g.tablist <- lapply(g, function(x) table(x, g$var1)) > > for (i in g.tablist) write.table(i , paste(Sys.Date(), i, sep="")) > > Warning messages: > 1: In if (file == "") file <- stdout() else if (is.character(file)) { : > the condition has length > 1 and only the first element will be used > 2: In file(file, ifelse(append, "a", "w")) : > > or using lapply > > lapply(g.tablist, function(i) write.table(i , paste(Sys.Date(), i, sep=""))) > $var1 > NULL > > $var1_lab > NULL > > $var2 > NULL > > $var2_lab > NULL > > Warning messages: > 1: In if (file == "") file <- stdout() else if (is.character(file)) { : > the condition has length > 1 and only the first element will be used > 2: In file(file, ifelse(append, "a", "w")) : > > #or > for (i in g.tablist) { sink(paste(i, ".txt.", sep="")) > sink()} > > Warning messages: > 1: In file(file, ifelse(append, "a", "w")) : > only first element of 'description' argument used > 2: In file(file, ifelse(append, "a", "w")) : > only first element of 'description' argument used > 3: In file(file, ifelse(append, "a", "w")) : > only first element of 'description' argument used > 4: In file(file, ifelse(append, "a", "w")) : > only first element of 'description' argument used > > Thanks, > Lauri > > ______________________________________________ > R-help at 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. >-- Henrique Dallazuanna Curitiba-Paran?-Brasil 25? 25' 40" S 49? 16' 22" O