So, one possibility and there are many others though, is the,

use the impute package which is available from the bioconductor project.

and, and just impute the missing datas, sorry the missing data points and so

that you can have a value there, and then you can run your SVD.

And so this approach you.

This code here uses the impute.knn function which takes a, a missing row or

missing values in a row, and imputes it by the k nearest neighbors to

that row.

So if k, for example, is five, then it will

take the five rows that are closest to the row with

the missing data, and then impute the data in that

missing row with the kind of average of the other five.

And so, once we've imputed the data with

this impute.knn function we can run the svd.

You can see, it runs without error.

And we can, we can kind of plot the first singular

vectors from each of them.

And so you can see that the on the left hand side, I've got the,

the data, the, kind of the, the

first singular vector from the original data matrix,

and the second, on the right-hand side,

I've got the, server singular vector from the

data matrix that was in, that was kind of where the missing data was imputed.

Now, you can see that they're roughly similar.

They're not exactly the same, but the imputation

didn't seem to have a major effect on

the on the running of the svd. So