0

すべて日付で名前が付けられたいくつかのcsvファイルがあり、それらすべてについて、一緒に配置された他の2つの列からのデータを含む新しい列を各ファイルに作成したいと考えています。次に、それらを 1 つの大きなデータフレームに結合し、保持する列を 2 つだけ選択します。次に例を示します。

2 つのデータフレームがあるとします。

  a b c        a b c
x 1 2 3      x 3 2 1
y 2 3 1      y 2 1 3

次に、それぞれに新しい列 d を作成します。

  a b c  d        a b c  d
x 1 2 3 13      x 3 2 1 31
y 2 3 1 21      y 2 1 3 23

次に、これらを次のように組み合わせます。

  a b c  d
x 1 2 3 13
y 2 3 1 21
x 3 2 1 31
y 2 1 3 23

次に、列 a と d の 2 つを保持し、残りの 2 つの列 b と c を削除します。

  a  d
x 1 13
y 2 21
x 3 31
y 2 23

これが私の現在のコードです(2つの列を結合しようとすると、または2つの列のみを保持しようとすると機能しません):

    f <- list.files(pattern="201\\d{5}\\.csv")        # reading in all the files
    mydata <- sapply(f, read.csv, simplify=FALSE)     # assigning them to a dataframe
    do.call(rbind,mydata)                             # combining all of those dataframes into one
    mydata$Data <- paste(mydata$LAST_UPDATE_DT,mydata$px_last)   # combining two of the columns into a new column named "Data"
    c('X','Data') %in% names(mydata)               # keeping two of the columns while deleting the rest
4

2 に答える 2

1

そのために使えますrbind (data1,data2)[,c(1,3)]col d基本的なことである各データフレームで作成できると仮定します。

 data1<-structure(list(a = 1:2, b = 2:3, c = c(3L, 1L), d = c(13L, 21L
    )), .Names = c("a", "b", "c", "d"), row.names = c("x", "y"), class = "data.frame")

 > data1
      a b c  d
    x 1 2 3 13
    y 2 3 1 21   

data2<-structure(list(a = c(3L, 2L), b = c(2L, 1L), c = c(1L, 3L), d = c(31L, 
23L)), .Names = c("a", "b", "c", "d"), row.names = c("x", "y"
), class = "data.frame")

> data2
  a b c  d
x 3 2 1 31
y 2 1 3 23

data3<-rbind(data1,data2)

    > data3
   a b c  d
x  1 2 3 13
y  2 3 1 21
x1 3 2 1 31
y1 2 1 3 23

finaldata<-data3[,c("a","d")]
    > finaldata
   a  d
x  1 13
y  2 21
x1 3 31
y1 2 23
于 2013-08-10T23:05:17.370 に答える