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 に置き換える