R Tips(データの加工)

#列に名前を付ける

x <- matrix(c(1,1,2,2,1,2,1,2,5,3,6,2,6,5,1,4), nrow=4)

dimnames(x) <- list(x[1:4], c("id","time", "x1", "x2"))

colnames(x)

 

#列を追加する

head(cbind(tips, type = ifelse(tips$tp < 2, "少ない", "多い")),3)

 

#変数を削除する

rm(変数)

 

#ピボットテーブルを作成する

 library(reshape2)

head(tips)

acast(melt(tips, id.var=c("sex","day","time"),

           measure.var="tip"),

      sex + time ~ day, sum, margins = FALSE)

#引数marginsは小計を計算するか否かを示す。

#MSのピーク値を変数化し、テーブルを変形する

MS <- NULL

for (i in 1:1201) {

  if (nrow(subset(MS1, MS1$sample == i)) != 0) {

    MSi <- subset(MS1, MS1$sample == 1)

    MSi <- head(acast(melt(MSi, id.var=c("sample","sample.no","day",

                                                 "rt"), measure.var="intb"),

                          sample+sample.no+day ~ rt, sum, margins = FALSE)) #margins means subtotal

    print(c(i,ncol(MS1)))

    

    if (i >= 2) {

      MSi <- merge(MSi, MSi-1, all=T, sort=F)

    } 

  } 

}

 

#欠損値を取り除く/0で置き換える

 a <- c(1, 2, NA, 4, 5, NA)

 a[!is.na(a)]                                # a から NA を取り除いた

 a <- ifelse(is.na(a), 0, a)                 # NA を 0 に置き換える