Re: [R] How to modify data frame stored in a list

2018-06-18 Thread William Dunlap via R-help
>Thanks! >Why have to add “x” at the end of function, which was what I missed. You can see for yourself with some tests: f1 <- function(x) { x[1] <- 10 } f2 <- function(x) { x[1] <- 10 ; x } print(f1(1:3)) # 10 print(f2(1:3)) # 10 2 3 An assignment returns the value of its right hand side but

Re: [R] How to modify data frame stored in a list

2018-06-18 Thread Honkit Wong
Thanks! Why have to add “x” at the end of function, which was what I missed. > On Jun 18, 2018, at 2:53 PM, Bert Gunter wrote: > > It depends on whether you wish to refer to the column to be logged by name or > index. > > Reprex: > > set.seed(1234) > dat <- lapply(1:3, function(i)data.frame(

Re: [R] How to modify data frame stored in a list

2018-06-18 Thread Bert Gunter
search: "Default function return R" -- Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Mon, Jun 18, 2018 at 2:58 PM, Honkit Wong wrote: > Thanks! > Wh

Re: [R] How to modify data frame stored in a list

2018-06-18 Thread Bert Gunter
It depends on whether you wish to refer to the column to be logged by name or index. Reprex: set.seed(1234) dat <- lapply(1:3, function(i)data.frame(a = runif(5), b = sample(letters,5))) ## by numerical index of column d <- lapply(dat,function(x){x[,"logged"]<- log10(x[,1]); x}) ## by name of c

Re: [R] How to modify data frame stored in a list

2018-06-18 Thread Jeff Newmiller
Do you want it to run quickly or be quick to write? Why have you specified that you want a solution that uses lapply? (Such constraints often arise in the context of homework, whereas someone interested in getting the job done does not usually care about which function is used.) On June 18, 201

[R] How to modify data frame stored in a list

2018-06-18 Thread Honkit Wong
Dear R community, I have a question seems very simple but have trouble to do it. I have a list which stores many data frames. Now, I want to perform log10 on one column in each data frame in the list and save the value as a new column back to the original data frame in the list. How do I quickly