tsknd的な備忘録

再利用しそうな資材置き場

rcode1

下記のインプット(data, list)から、アウトプット(mat)を作成する。

> data
ID キb tesy
1 aa 190 a
2 bb 38 a
3 cc 9999 b
4 dd 10 e
> list
original esti index
1 ID ID 1
2 aa v1 2
3 工期 v2 3
4 しょう v3 4
5 規模 キb 5

> mat
ID aa 工期 しょう 規模
[1,] 1 NA NA NA 190
[2,] 2 NA NA NA 38
[3,] 3 NA NA NA 9999
[4,] 4 NA NA NA 10

 ■コード

df <- data[,is.element(colnames(data),list$esti)]

a <- matrix(0,0,nrow(list))
colnames(a) <- list[,2]
temp <- merge(a,df,all=T)

foo <- function(x){
return(list[is.element(list$esti,x),1])
}
foo2 <- function(x){
return(list[is.element(list$original,x),3])
}

colnames(temp) <- sapply(colnames(temp),foo)
sl <- sapply(colnames(temp),foo2)

mat <- matrix(0,nrow(temp),ncol(temp))
for(i in 1:ncol(temp)){
rltvec <- temp[,is.element(colnames(temp),names(sl[i]))]
print(rltvec)
mat[,sl[i]] <- rltvec
}
colnames(mat) <- list$original