Thanks. I think nabble is good for programming questions. Bear with me if I'm 
incorrect.

Data: Genomics SNP information 
Goal: I need to add Chromosome and SNP position to the data frame I'm using 
through apply.

I'd like to add new column from text processed through apply function.

For example:  10:60523:T:G  (Column 2)
CHR: 10
Position: 60523

Dataset:
chr     rs      ps      n_miss  allele1 allele0 af      beta    se      l_remle 
p_wald
-9      10:60523:T:G    -9      0       T       G       0.977   -1.769354e-02   
3.597196e-02    1.566731e-01    6.228309e-01
-9      10:60684:A:C    -9      0       A       C       0.973   1.698925e-02    
2.942366e-02    1.561001e-01    5.636926e-01
-9      10:61331:A:G    -9      0       A       G       0.973   1.708586e-02    
2.942424e-02    1.560944e-01    5.614851e-01
-9      10:62010:C:T    -9      0       C       T       0.980   -8.513143e-03   
3.837054e-02    1.566875e-01    8.244260e-01

Code:

--------------------------------------------------------
data<-read.table("small.txt",header = T) # read data
data<-data[,c(2,11)] #delete other columns not needed 

#--split data on : and get chromosome and position

split_rs<-function(rs){  
    
    chr<-vector(,length(rs)) # create new vector to store chr
    pos<-vector(,length(rs)) #create new vector to store position
    
    for(i in 1:length(rs)){ #iterate over RS column

        if(grepl(":",rs[i])){ #if : in column string 
            temp <- strsplit(rs[i],":",fixed=T)         #split        
            chr[i] <-temp[[1]][1] #store CHR
            pos[i] <- temp[[1]][2]  #store position
        }    
    }
    return(list(chr=chr,pos=pos)) #return making a list
}

data$POS<-"NA" #add new column CHR and make NA 
data$CHR <- "NA" #add new column POS and make NA

temp<-apply(data,2,split_rs) #send data frame to function 

#--I assign value from list sent -- I would like to improve this part

data$CHR<-temp$rs$chr
data$POS<-temp$rs$pos

rm(temp)

colnames(data)<-c("SNP","P","CHR","BP")
--------------------------------------------------------



-----Original Message-----
From: Jeff Newmiller [mailto:jdnew...@dcn.davis.ca.us] 
Sent: Monday, March 5, 2018 1:48 PM
To: r-help@r-project.org; Sariya, Sanjeev <ss5...@cumc.columbia.edu>; R Help 
<r-help@r-project.org>
Subject: Re: [R] Help with apply and new column?

Read the Posting Guide... (see message footer) ... some relevant things you can 
find there:

a) Yes, this appears to be about how to use an R base function so it is on topic
b) Post a reproducible example (include some sample data, preferably using the 
dput function)
c) Post using plain text so the mailing list doesn't convert it for you and 
mangle things in a way you did not intend. 
--
Sent from my phone. Please excuse my brevity.

On March 5, 2018 10:07:24 AM PST, "Sariya, Sanjeev" <ss5...@cumc.columbia.edu> 
wrote:
>Hello members,
>
>Can I ask question for apply, adding new column to data frame on this 
>e-mail list?
>
>Thanks!
>
>
>
>       [[alternative HTML version deleted]]
>
>______________________________________________
>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.

Reply via email to