簡體   English   中英

r 錯誤:需要數字/復雜矩陣/向量參數?

[英]r error : requires numeric/complex matrix/vector arguments?

下午好 !

我正在嘗試從頭開始實現 EM 算法。 我開發了一個包含以下內容的代碼:

k=10
w_k=rep(1,k)/k
n_j=rep(0,k)

print(w_k)

data=iris[1:150,-5]
means=sample(1:dim(data)[1],k,replace=FALSE)
means
mu=iris[means,-5]
sigma=cov(data)
print("mu")
mu
print("sigma")
sigma
print("inv")
solve(sigma)
print("mu[1,] ")
as.vector(mu[1,])
as.vector(mu[1,]) %*%  solve(sigma) #line of error 

不幸的是,這一行給出了以下錯誤:

Error in as.vector(mu[1, ]) %*% solve(sigma) : 
  requires numeric/complex matrix/vector arguments
Execution halted

我試圖通過使用as.matrix()多次解決這個問題,但沒有成功。 預先感謝您的幫助!

向量mu是一個 data.frame。 嘗試將其轉換為矩陣。

as.matrix(mu[1,]) %*%  solve(sigma)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width
#95     16.37781    11.46013    -0.198358   -9.473886

mu是一個數據框,應該轉換為矩陣。

k=10
w_k=rep(1,k)/k
n_j=rep(0,k)

print(w_k)

data=iris[1:150,-5]
means=sample(1:dim(data)[1],k,replace=FALSE)
means
mu=as.matrix(iris[means,-5])
sigma=cov(data)
print("mu")
mu
print("sigma")
sigma
print("inv")
solve(sigma)
print("mu[1,] ")

is.numeric(mu[1,])
is.matrix(mu[1,])
rbind(mu[1,]) %*%  solve(sigma) %*% cbind(mu[1,])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM