Hi,May be this helps:
dat1 <- read.table(text="ID????????? 1?????????? 2??????????? 3???????????? 4??????????????? 5?????????? 6
A?????????? 1988????? 1995???????????????????? 2000?????????? 2000????? 2007
B??????????????????????? 1995?????? 1997?????? 2000?????????? 2001
C?????????? 2001????? 2008???????????????????????????????????????????????????? 2010",sep="",header=TRUE,check.names=FALSE, fill=TRUE,stringsAsFactors=FALSE)
dat1[is.na(dat1)] <-""
?dat1
#? ID??? 1??? 2??? 3??? 4??? 5 6
#1? A 1988 1995 2000 2000 2007?
#2? B 1995 1997 2000 2001??????
#3? C 2001 2008 2010
str(dat1)
#'data.frame':??? 3 obs. of? 7 variables:
# $ ID: chr? "A" "B" "C"
# $ 1 : int? 1988 1995 2001
# $ 2 : int? 1995 1997 2008
# $ 3 : int? 2000 2000 2010
# $ 4 : chr? "2000" "2001" ""
# $ 5 : chr? "2007" "" ""
# $ 6 : chr? "" "" ""
#Suppose, you already read the data as shown in the post:
dat <- read.csv("Laura.csv",header=TRUE,stringsAsFactors=FALSE,check.names=FALSE)
dat[is.na(dat)] <- ""
dat
#? ID??? 1??? 2??? 3??? 4??? 5??? 6
#1? A 1998 1995????? 2000 2000 2007
#2? B????? 1995 1997 2000 2001????
#3? C 2001 2008??????????????? 2010
?dat[,-1] <-? do.call(rbind,lapply(seq_len(nrow(dat)),function(i) {x <- dat[i,-1]; indx <- x!=""; c(x[indx],rep("",length(x)-length(x[indx])))}))
?dat
#? ID??? 1??? 2??? 3??? 4??? 5 6
#1? A 1998 1995 2000 2000 2007?
#2? B 1995 1997 2000 2001??????
#3? C 2001 2008 2010???????
?????
A.K.
I would like to remove null values in a dataframe and shift all data left.
I have something like:
ID ? ? ? ? ?1 ? ? ? ? ? 2 ? ? ? ? ? ?3 ? ? ? ? ? ? 4 ? ? ? ? ? ? ? ?5 ? ? ? ? ? 6
A ? ? ? ? ? 1988 ? ? ?1995 ? ? ? ? ? ? ? ? ? ? 2000 ? ? ? ? ? 2000 ? ? ?2007
B ? ? ? ? ? ? ? ? ? ? ? ?1995 ? ? ? 1997 ? ? ? 2000 ? ? ? ? ? 2001
C ? ? ? ? ? 2001 ? ? ?2008 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2010
I want something like:
ID ? ? ? ? ?1 ? ? ? ? ? 2 ? ? ? ? ? 3 ? ? ? ? ? ? ? 4 ? ? ? ? ? ? ? ?5 ? ? ? ? ? 6
A ? ? ? ? ? 1988 ? ? ?1995 ? ? 2000 ? ? ? ? 2000 ? ? ? ? ? ?2007
B ? ? ? ? ? 1995 ? ? ?1997 ? ? 2000 ? ? ? ? 2001
C ? ? ? ? ? 2001 ? ? ?2008 ? ? 2010
Any suggestions on how to accomplish this?