如何使用R

时间:2015-06-04 20:21:14

标签: r dataframe dynamic-columns

 employee <- c('John Doe','Peter Gynn','Jolie Hope', '20000', '30000' ,'40000')
 startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
 kick<-1:9

cbind.fill <- function(...){
nm <- list(...) 
nm <- lapply(nm, as.matrix)
n <- max(sapply(nm, nrow)) 
do.call(cbind, lapply(nm, function (x) 
    rbind(x, matrix(, n-nrow(x), ncol(x))))) 
} 

employ.data<- data.frame(cbind.fill(employee, kick, startdate))

以下是结果。

employ.data
           X1   X2    X3
       John Doe  1   14914
     Peter Gynn  2   13963
     Jolie Hope  3   13586
          20000  4  <NA>
          30000  5  <NA>
          40000  6  <NA>
           <NA>  7  <NA>
           <NA>  8  <NA>
           <NA>  9  <NA>

现在,我正在尝试将第二列中的名称和第二列中的名称移动到第三列。这样,结果如下:

       X1       X2        X3
       John Doe 20000     4
     Peter Gynn 30000     5
     Jolie Hope 40000     6
          <NA>    1     14914
          <NA>    2     13586 
          <NA>    3     13586
          <NA>    7     <NA>
          <NA>    8     <NA>
          <NA>    9     <NA>

自从过去几天以来,我一直在尝试这样做,但无济于事我收到错误消息。这是我的一个试用

      rbind.fill(employ.data[c(4:6),1], employ.data[c(1:3),2]) 
      rbind.fill(employ.data[c(4:6),2], employ.data[c(1:3),3])
    Error:  All inputs to rbind.fill must be data.frames

0 个答案:

没有答案