2016-07-09 10 views
1

私は4つの要素a、b、c、dを持っています。私はこれらの4つの要素の間の距離を計算し、それをファイルに書き込む関数を持っています。このアルゴリズムは、一意の比較(すなわち、aおよびb not bおよびa)のみを計算する。以下はファイルの構造です。R:データフレームをnxn行列に変換する方法

ele1 ele2 dist 
a b 2.4 
a c 0.5 
a d 3.4 
b c 0.9 
b d 12.5 
c d 8.3 

これをnxnマトリックスに書き込もうとしています。私は次のコードを使用しました。

dataFile = read.csv("distanceMeasure.csv") 
dataToMatrix <- xtabs(dist ~ ele1 + ele2, data = dataFile) 

しかし、私は何を得ているのですか。

b c d 
a 
b 
c 

私が探している私たちは、レベルのいくつかは、列に欠けているにもかかわらず、すべての組み合わせを与えるように、指定されたlevelsfactorに変換することができ

a b c d 
a 
b 
c 
d 

答えて

1

です。

Un1 <- as.character(unique(unlist(dataFile[1:2]))) 
dataFile[1:2] <- lapply(dataFile[1:2], factor, levels = Un1) 
xtabs(dist ~ ele1 + ele2, data = dataFile) 
#  ele2 
#ele1 a b c d 
# a 0.0 2.4 0.5 3.4 
# b 0.0 0.0 0.9 12.5 
# c 0.0 0.0 0.0 8.3 
# d 0.0 0.0 0.0 0.0 
+1

ありがとうございます@akrun – SriniShine

関連する問題