[R] a question on write.table

ruipbarradas at sapo.pt ruipbarradas at sapo.pt
Mon Sep 28 20:43:33 CEST 2015


Hello,

ifelse is a vectorized version of if/else, you want the normal if/else.

if(file.exists(... etc ...)
    [...]
else
    [...]

Hope this helps,

Rui Barradas
 

Citando Antonio Silva <aolinto.lst at gmail.com>:

> Dear R users
>
> I want to write a file that contains several data frames generated in a
> loop
> ing.
> I also want the column names be written to file only when it is created
in
> first loop.
>
> In the example below, when I run each line separately without "for (i in
> ...) { }"  it works, but when I run the looping I get an error message
>
> X<-c("A","B","C","D","E")
> Y<-c(0,1,2,3,4)
>
> for (i in 0:3) {
> Y<-Y+i
> data<-data.frame(X,Y)
> ifelse(file.exists("test.csv"),
> write.table(data,"test.csv",row.names =
> FALSE,col.names=FALSE,sep=";",append=TRUE),
> write.table(data,"test.csv",row.names = FALSE,sep=";")
> )}
>
> Error in ifelse(file.exists("test.csv"), write.table(data, "test.csv", 
:
> substituto tem comprimento zero
> Além disso: Warning message:
> In rep(yes, length.out = length(ans)) :
> 'x' is NULL so the result will be NULL
>
> What is going wrong here? Thanks for any comments or suggestions.
>
> All the best.
>
> Antonio Olinto
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.htmland provide commented,
> minimal, self-contained, reproducible code.

 

	[[alternative HTML version deleted]]



More information about the R-help mailing list