14

私はここでいくつかの提案された解決策を試しました。しかし、私の場合はうまくいきませんでした。ここにコードがあります:

a <- read.table("Whirr_127.csv", header=T, sep=",", row.names=1) # task assignment / people vs task
b <- read.table("Files_Whirr_127.csv", header=T, sep=",", row.names=1) #task vs files 
a
b

#calc cr , cr = ta * tf * transpose(ta)
cr <- as.matrix(a) %*% (as.matrix(b) %*% as.matrix(t(b)) %*% as.matrix(t(a)))
cr

#set value to 1, to initialize table
cr[cr>=1]<-1
cr

#identify diagonal matrix, set to zero
cr<-as.matrix(0,ncol=ncol(cr),nrow=nrow(cr))
cr<-diag(cr,x=0)

対角値をゼロに設定したい。私の場合、最後の2行で使用されているコードが機能していないようです。

また、でファイル名を使用したいので、使用しaてみたAB_Files_Whirr_127.csvとして保存しました

write.csv(cr,file = paste("CR_", a,".csv")

しかし、私のディレクトリには何も表示されません。

crのサンプル出力:

               Adrian Cole Alison Wong Andrei Savu Bruno Dumon Edward J. Yoon Eugene Koontz Jakob Homan Kelvin Kakugawa Kirk True Lars George Soren Macbeth Stu Hood
Adrian Cole               0           0           0           0              0             0           0               0         0           0             0        0
Alison Wong               0           0           0           0              0             0           0               0         0           0             0        0
Andrei Savu               0           0           1           0              0             0           0               0         0           1             1        0
Bruno Dumon               0           0           0           0              0             0           0               0         0           0             0        0
Edward J. Yoon            0           0           0           0              0             0           0               0         0           0             0        0
Eugene Koontz             0           0           0           0              0             0           0               0         0           0             0        0
Jakob Homan               0           0           0           0              0             0           0               0         0           0             0        0
Kelvin Kakugawa           0           0           0           0              0             0           0               0         0           0             0        0
Kirk True                 0           0           0           0              0             0           0               0         0           0             0        0
Lars George               0           0           1           0              0             0           0               0         0           1             1        0
Soren Macbeth             0           0           1           0              0             0           0               0         0           1             1        0
Stu Hood                  0           0           0           0              0             0           0               0         0           0             0        0
Tibor Kiss                0           0           0           0              0             0           0               0         0           0             0        0
Tom White                 0           0           1           0              0             0           0               0         0           1             1        0
Unassigned                0           0           0           0              0             0           0               0         0           0             0        0
                Tibor Kiss Tom White Unassigned
Adrian Cole              0         0          0
Alison Wong              0         0          0
Andrei Savu              0         1          0
Bruno Dumon              0         0          0
Edward J. Yoon           0         0          0
Eugene Koontz            0         0          0
Jakob Homan              0         0          0
Kelvin Kakugawa          0         0          0
Kirk True                0         0          0
Lars George              0         1          0
Soren Macbeth            0         1          0
Stu Hood                 0         0          0
Tibor Kiss               0         0          0
Tom White                0         1          0
Unassigned               0         0          0
4

1 に答える 1

14

a文字変数ではなく、データフレームであるため、出力ファイルの名前には使用できません。

infile <- "Whirr_127.csv"
a <- read.table(infile, header=T, sep=",", row.names=1)
....
diag(cr) <- 0
write.csv(cr, file = paste0("CR_", infile, ".csv")

この行の構文は、diag新しいRユーザーには面白く見える傾向がありますが、実際には、割り当て関数を呼び出すための代替構文にすぎません。diag<-つまり、diag(x) <- 0として解釈されdiag<-(x, 0)ます。

更新:複数のファイル

複数のペアファイルに対して上記を繰り返したい場合は、これを行うことができます。

a.files <- grep("^Whirr", dir(), value=TRUE)
b.files <- paste0("Files_", a.files)
for(i in length(a.files)){
    a <- read.table(a.files[i], ...)
    b <- read.table(b.files[i], ...)
    ...
    write.csv(cr, paste0("CR_", a.files[i], ".csv"))
}
于 2012-09-18T06:55:02.723 に答える