Nevil Amos
2010-Jun-13 06:21 UTC
[R] How to output text to sink without initial line number [1], and data frame line by line without column names
I want to output a text file assembeld from various soruces within r ( actually as a genepop file) the output should be formatted line 1 "text comment" line 2:n selected column names from data frame line n+1on lines of selected columns from data frame one row at a time I have the following code, but cannot see how to remove the line numbers and omit column names form the line by line data frame output col1<-c(2,45,67) col2<-c("a","B","C") col3<-c(234,44,566) mydf<-as.data.frame(cbind(col1,col2,col3)) n<-ncol(mydf) nr<-nrow(mydf) sink("test.txt") print("I will be including text of various sorts in this file so cannot use print table or similar command") for (i in 1:n){ print(colnames(mydf[i]),quote=F) } for (j in 1:nr){ print(mydf[j,c(2:n)],quote=F,row.names=F)} sink() The test.txt contains: [1] "I will be including text of various sorts in this file so cannot use print table or similar command" [1] col1 [1] col2 [1] col3 col2 col3 a 234 col2 col3 B 44 col2 col3 C 566 what I would like in test.txt is: "I will be including text of various sorts in this file so cannot use print table or similar command" col1 col2 col3 a 234 B 44 C 566 Many thanks Nevil Amos
Nevil Amos
2010-Jun-13 06:41 UTC
[R] How to output text to sink from data frame line by line without column names
OK I see how to remove the line numbers[1] etc by using cat instead of print, but cannot work out how to remove the column names from the data frame output On 13/06/2010 4:21 PM, Nevil Amos wrote:> I want to output a text file assembeld from various soruces within r ( > actually as a genepop file) > > the output should be formatted line 1 "text comment" > line 2:n selected > column names from data frame > line n+1on lines > of selected columns from data frame one row at a time > > > I have the following code, but cannot see how to remove the line > numbers and omit column names form the line by line data frame output > > col1<-c(2,45,67) > col2<-c("a","B","C") > col3<-c(234,44,566) > mydf<-as.data.frame(cbind(col1,col2,col3)) > n<-ncol(mydf) > nr<-nrow(mydf) > sink("test.txt") > > print("I will be including text of various sorts in this file so > cannot use print table or similar command") > for (i in 1:n){ > print(colnames(mydf[i]),quote=F) } > for (j in 1:nr){ > print(mydf[j,c(2:n)],quote=F,row.names=F)} > sink() > > The test.txt contains: > > [1] "I will be including text of various sorts in this file so cannot > use print table or similar command" > [1] col1 > [1] col2 > [1] col3 > col2 col3 > a 234 > col2 col3 > B 44 > col2 col3 > C 566 > > what I would like in test.txt is: > > "I will be including text of various sorts in this file so cannot use > print table or similar command" > col1 > col2 > col3 > a 234 > B 44 > C 566 > > Many thanks > > Nevil Amos
Joris Meys
2010-Jun-13 13:23 UTC
[R] How to output text to sink from data frame line by line without column names
col1<-c(2,45,67) col2<-c("a","B","C") col3<-c(234,44,566) mydf<-as.data.frame(cbind(col1,col2,col3),stringsAsFactors=F) n<-ncol(mydf) nr<-nrow(mydf) #sink("test.txt") cat("I will be including text of various sorts in this file so cannot use print table or similar command") for (i in 1:n){ cat(colnames(mydf[i])," ") cat("\n") } for (j in 1:nr){ cat(unlist(mydf[j,c(2:n)])," ") cat("\n")} #sink() Cheers Joris On Sun, Jun 13, 2010 at 8:41 AM, Nevil Amos <nevil.amos at gmail.com> wrote:> OK I see how to remove the line numbers[1] etc by using cat instead of > print, but cannot work out how to remove the column names from the data > frame output > > On 13/06/2010 4:21 PM, Nevil Amos wrote: >> >> I want to output a text file assembeld from various soruces within r ( >> actually as a genepop file) >> >> the output should be formatted ? ? line 1 "text comment" >> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? line 2:n ?selected >> column names from data frame >> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?line n+1on lines of >> selected columns ?from data frame one row at a time >> >> >> I have the following code, but cannot see how to remove the line numbers >> and omit column names form the line by line data frame output >> >> col1<-c(2,45,67) >> col2<-c("a","B","C") >> col3<-c(234,44,566) >> mydf<-as.data.frame(cbind(col1,col2,col3)) >> n<-ncol(mydf) >> nr<-nrow(mydf) >> sink("test.txt") >> >> print("I will be including text of various sorts in this file so cannot >> use print table or similar command") >> for (i in 1:n){ >> print(colnames(mydf[i]),quote=F) } >> for (j in 1:nr){ >> print(mydf[j,c(2:n)],quote=F,row.names=F)} >> sink() >> >> The test.txt contains: >> >> [1] "I will be including text of various sorts in this file so cannot use >> print table or similar command" >> [1] col1 >> [1] col2 >> [1] col3 >> ?col2 col3 >> ? ?a ?234 >> ?col2 col3 >> ? ?B ? 44 >> ?col2 col3 >> ? ?C ?566 >> >> what I would like in test.txt ?is: >> >> "I will be including text of various sorts in this file so cannot use >> print table or similar command" >> col1 >> col2 >> col3 >> ?a ?234 >> ?B ? 44 >> ?C ?566 >> >> Many thanks >> >> Nevil Amos > > ______________________________________________ > 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. >-- Joris Meys Statistical consultant Ghent University Faculty of Bioscience Engineering Department of Applied mathematics, biometrics and process control tel : +32 9 264 59 87 Joris.Meys at Ugent.be ------------------------------- Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php