Re: [R] how to write a loop to repetitive jobs

2018-04-18 Thread jim holtman
Try this:


result <- lapply(71:75, function(x){
# use 'paste0' to add the number to the file name
input <-
read.csv(paste0("C:/Awork/geneAssociation/removed8samples/neuhausen",
x,
"/seg.pr3.csv")
, head=TRUE
)
input$id <- paste0("sn", x)
input  # return the input
})

result <- do.call(rbind, result)  # combine dataframes together
​


Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

On Mon, Apr 16, 2018 at 1:54 PM, Ding, Yuan Chun  wrote:

> Hi All..,
>
> I need to do the following repetitive jobs:
>
> seg71 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen71/seg.pr3.csv",
> head=T)
> seg71$id <-"sn71"
>
> seg72 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen72/seg.pr3.csv",
> head=T)
> seg72$id <-"sn72"
>
> seg73 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen73/seg.pr3.csv",
> head=T)
> seg73$id <-"sn73"
>
> seg74 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen74/seg.pr3.csv",
> head=T)
> seg74$id <-"sn74"
>
> seg75 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen75/seg.pr3.csv",
> head=T)
> seg75$id <-"sn75"
>
> seg <- rbind (seg71, seg72, seg73, seg74, seg75)
>
> I want to write a loop to do it;
>
> For ( d in 71:75) {
>   Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i,
> sep="")
>   setwd(Dir)
> ..
> then I do not know how to create objects seg71 to seg75;  in SAS, it would
> be  seg&d;
>
> I like R, but not good at R.
>
> Can you help me?
>
> Thank you,
>
> Ding
>
>
> -
> -SECURITY/CONFIDENTIALITY WARNING-
> This message (and any attachments) are intended solely...{{dropped:13}}

__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] how to write a loop to repetitive jobs

2018-04-16 Thread K. Elo
Hi!

An alternative with 'assign':

for ( i in 71:75) {
  setwd(paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i,
sep=""))
  temp.df<-read.csv("seg.pr3.csv", head=T)
  temp.df$id<-paste0("sn",i,sep="")
  assign(paste0("seg",i,sep=""),temp.df)
}
rm(temp.df,i)    # Clean up

HTH,
Kimmo


2018-04-17 kello 08:15 +0200, Albrecht Kauffmann wrote:
> Hello Ding,
> 
> try this:
> 
> seg <- list()
> for ( d in 71:75) {
>   s <- paste0("seg",d)
>   sn <- paste0("sn",d)
>   Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i,
> sep="")
>   setwd(Dir)
>   seg[[s]] <- read.csv("seg.pr3.csv", head=T)
>   seg[[s]]$id <- sn
> }
> 
> Greetings,
> Albrecht
>

__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] how to write a loop to repetitive jobs

2018-04-16 Thread Albrecht Kauffmann
Hello Ding,

try this:

seg <- list()
for ( d in 71:75) {
  s <- paste0("seg",d)
  sn <- paste0("sn",d)
  Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i, sep="")
  setwd(Dir)
  seg[[s]] <- read.csv("seg.pr3.csv", head=T)
  seg[[s]]$id <- sn
}

Greetings,
Albrecht

-- 
  Albrecht Kauffmann
  alkau...@fastmail.fm

Am Mo, 16. Apr 2018, um 22:54, schrieb Ding, Yuan Chun:
> Hi All..,
> 
> I need to do the following repetitive jobs:
> 
> seg71 <- read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen71/
> seg.pr3.csv", head=T)
> seg71$id <-"sn71"
> 
> seg72 <- read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen72/
> seg.pr3.csv", head=T)
> seg72$id <-"sn72"
> 
> seg73 <- read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen73/
> seg.pr3.csv", head=T)
> seg73$id <-"sn73"
> 
> seg74 <- read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen74/
> seg.pr3.csv", head=T)
> seg74$id <-"sn74"
> 
> seg75 <- read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen75/
> seg.pr3.csv", head=T)
> seg75$id <-"sn75"
> 
> seg <- rbind (seg71, seg72, seg73, seg74, seg75)
> 
> I want to write a loop to do it;
> 
> For ( d in 71:75) {
>   Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i, 
> sep="")
>   setwd(Dir)
> ..
> then I do not know how to create objects seg71 to seg75;  in SAS, it 
> would be  seg&d;
> 
> I like R, but not good at R.
> 
> Can you help me?
> 
> Thank you,
> 
> Ding
> 
> 
> -
> -SECURITY/CONFIDENTIALITY WARNING-
> This message (and any attachments) are intended solely...{{dropped:8}}

__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] how to write a loop to repetitive jobs

2018-04-16 Thread Ding, Yuan Chun
Hi Rui,

Thank you very much!!  It worked very well, I am looking into how  to use 
lapply and do.call.

Ding

-Original Message-
From: Rui Barradas [mailto:ruipbarra...@sapo.pt] 
Sent: Monday, April 16, 2018 2:16 PM
To: Ding, Yuan Chun; r-help@r-project.org
Subject: Re: [R] how to write a loop to repetitive jobs

Hello,

The following might do it. Without data it's untested.


wd <- function(i){
 paste0("C:/Awork/geneAssociation/removed8samples/neuhausen7", i,
"/seg.pr3.csv")
}

seg <- lapply(1:5, function(i) {
 DF <-read.csv(wd(i))
 DF$id <- paste0("sn7", i)
 DF
})

seg <- do.call(rbind, seg)
row.names(seg) <- NULL


Hope this helps,

Rui Barradas

On 4/16/2018 9:54 PM, Ding, Yuan Chun wrote:
> Hi All..,
> 
> I need to do the following repetitive jobs:
> 
> seg71 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen71/seg.pr3.csv", 
> head=T) seg71$id <-"sn71"
> 
> seg72 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen72/seg.pr3.csv", 
> head=T) seg72$id <-"sn72"
> 
> seg73 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen73/seg.pr3.csv", 
> head=T) seg73$id <-"sn73"
> 
> seg74 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen74/seg.pr3.csv", 
> head=T) seg74$id <-"sn74"
> 
> seg75 <- 
> read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen75/seg.pr3.csv", 
> head=T) seg75$id <-"sn75"
> 
> seg <- rbind (seg71, seg72, seg73, seg74, seg75)
> 
> I want to write a loop to do it;
> 
> For ( d in 71:75) {
>Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i, sep="")
>setwd(Dir)
> ..
> then I do not know how to create objects seg71 to seg75;  in SAS, it would be 
>  seg&d;
> 
> I like R, but not good at R.
> 
> Can you help me?
> 
> Thank you,
> 
> Ding
> 
> 
> -
> -SECURITY/CONFIDENTIALITY WARNING-
> This message (and any attachments) are intended solely 
> f...{{dropped:22}}
> 
> __
> R-help@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.html
> and provide commented, minimal, self-contained, reproducible code.
> 
__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] how to write a loop to repetitive jobs

2018-04-16 Thread Rui Barradas

Hello,

The following might do it. Without data it's untested.


wd <- function(i){
paste0("C:/Awork/geneAssociation/removed8samples/neuhausen7", i, 
"/seg.pr3.csv")

}

seg <- lapply(1:5, function(i) {
DF <-read.csv(wd(i))
DF$id <- paste0("sn7", i)
DF
})

seg <- do.call(rbind, seg)
row.names(seg) <- NULL


Hope this helps,

Rui Barradas

On 4/16/2018 9:54 PM, Ding, Yuan Chun wrote:

Hi All..,

I need to do the following repetitive jobs:

seg71 <- 
read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen71/seg.pr3.csv", 
head=T)
seg71$id <-"sn71"

seg72 <- 
read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen72/seg.pr3.csv", 
head=T)
seg72$id <-"sn72"

seg73 <- 
read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen73/seg.pr3.csv", 
head=T)
seg73$id <-"sn73"

seg74 <- 
read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen74/seg.pr3.csv", 
head=T)
seg74$id <-"sn74"

seg75 <- 
read.csv("C:/Awork/geneAssociation/removed8samples/neuhausen75/seg.pr3.csv", 
head=T)
seg75$id <-"sn75"

seg <- rbind (seg71, seg72, seg73, seg74, seg75)

I want to write a loop to do it;

For ( d in 71:75) {
   Dir<-paste("C:/Awork/geneAssociation/removed8samples/neuhausen", i, sep="")
   setwd(Dir)
..
then I do not know how to create objects seg71 to seg75;  in SAS, it would be  
seg&d;

I like R, but not good at R.

Can you help me?

Thank you,

Ding


-
-SECURITY/CONFIDENTIALITY WARNING-
This message (and any attachments) are intended solely f...{{dropped:22}}

__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.



__
R-help@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.html
and provide commented, minimal, self-contained, reproducible code.