[Rd] write.csv problems

Spencer Graves @pencer@gr@ve@ @end|ng |rom prod@y@e@com
Sat Jun 29 21:37:42 CEST 2024


Hi, Rui et al.:


On 6/29/24 14:24, Rui Barradas wrote:
> Às 17:02 de 28/06/2024, Spencer Graves escreveu:
>> Hello, All:
>>
>>
>>        I'm getting strange errors with write.csv with some objects of 
>> class c('findFn', 'data.frame'). Consider the following:
>>
>>
>> df1 <- data.frame(x=1)
>> class(df1) <- c('findFn', 'data.frame')
>> write.csv(df1, 'df1.csv')
>> # Error in x$Package : $ operator is invalid for atomic vectors
>>
>> df2 <- data.frame(a=letters[1:2],
>>        b=as.POSIXct('2024-06-28'))
>> class(df2) <- c('findFn', 'data.frame')
>> write.csv(df2, 'df1.csv')
>> # Error in tapply(rep(1, nrow(x)), xP, length) :
>> #  arguments must have same length
>>
>>
>>        "write.csv" works with some objects of class c('findFn', 
>> 'data.frame') but not others. I have 'findFn' object with 5264 rows 
>> that fails with the following error:
>>
>>
>> Error in `[<-.data.frame`(`*tmp*`, needconv, value = list(Count = 
>> c("83",  :
>>    replacement element 1 has 526 rows, need 5264
>>
>>
>>        I have NOT yet been able to reproduce this error with a smaller 
>> example. However, starting 'write.csv' with something like the 
>> following should fix all these problems:
>>
>>
>> if(is.data.frame(x)) class(x) <- 'data.frame'
>>
>>
>>        Comments?
>>        Thanks for all your work to help improve the quality of 
>> statistical software available to the world.
>>
>>
>>        Spencer Graves
>>
>> ______________________________________________
>> R-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> Hello,
> 
> I don't know if this answers to question.
> I wasn't able to reproduce errors but warnings, yes I was.
> 
> A way of not giving errors or warnings is to call write.csv at the end 
> of a pipe such as the following.
> 
> 
> df1 <- findFn("mean")
> df1 |> as.data.frame() |> write.csv("df1.csv")
> 
> 
> This solution is equivalent to the code proposed in the OP without the 
> need for a change in base R.


	  Thanks for this. Ivan Krylov informed me that this was NOT a problem 
with base R but with "[.findFn". I fixed that and got help from Ivan 
fixing another problem with "sos". Now it is officially "on its way to 
CRAN."

> 
> Hope this helps,


	  Yes. I'm not yet facile with "|>", but I'm learning.


	  Spencer Graves

> 
> Rui Barradas
> 
>



More information about the R-devel mailing list