0

マトリックスからネットワークを作成する必要があるソーシャルネットワーク分析割り当てに取り組んでいます。私は、生徒が共通のクラスによってリンクされているかどうかを示す行列を作成しようとしています(人と人のマトリックス)。私は元のデータを行列の最初の反復に変え、行列を掛けたいと思っています。トン(メートル)%※%mのエラー:私は行列乗算、私はこのエラーメッセージを取得するコードを実行するとt()%*% "を使用しているときのRエラーメッセージは、数値/複素数行列/ベクトル引数を必要とします。

names <- c("Tom", "Dick", "And", "Harry") 
class <- c("cs1", "cs2", "cs3", "cs1") 
count <- c(1, 1, 0, 1) 
df = data.frame (names, class, count) 
df2 <- spread(df, "class", "count") 

:私のデータセットと現在の行列は、下記のより大きなバージョンである必要があり、数値/複雑なマトリックス/ベクトル引数。

m <- as.matrix(df2) 
m2 <- t(m) %*% m 

前のSOの質問とMatrix multiplication in R: requires numeric/complex matrix/vector argumentsが数値または因子の値を含めるために必要な行列を提案し、私は以下のコードを追加しましたが、私は同じエラーメッセージまし答え:誰もができれば

df2 %>% mutate_if(is.factor, as.character) -> df2 
m <- as.matrix(df2) 
m2 <- t(m) %*% m 

を私がどこに間違っているのかを理解するのに役立ちます/ここでエラーメッセージが意味することは、私はそれを感謝します。ありがとうございました!

P.S.醜いコードのため申し訳ありません... R.

答えて

0

に新しいこれが役立つかもしれない:

# fill NA with 0 
df2[is.na(df2)] <- 0 

# make row names the names of the people 
row.names(df2) <- df2$names 
df2 <- df2[,-1] 

m <- as.matrix(df2) 
m2 <- t(m) %*% m 
+0

ありがとうございました!!それはトリックをした - エラーメッセージはありません:) – melonyn

+0

Np。それが正しく機能している場合は、それをマークすることができます。ありがとう。 – AidanGawronski

関連する問題