In the general case you cannot do that... you have to choose a way to 
interpolate your data points from a known x,y partition like your first example 
(your interpolation gets used as "f").

In the special case where your points in the data frame were generated as a 
grid, then you should still have your x and y partition variables from when you 
created the data frame, and you should be able to construct the matrix using 
the matrix() constructor (not the as.matrix function) from your data frame z 
column.

?matrix

On May 31, 2025 4:04:20 AM PDT, ravi via R-help <r-help@r-project.org> wrote:
>Hi,
>rgl plots seem to require the z object in the form of a matrix. I would like 
>some help in constructing this matrix when I cannot use the outer function. 
>Let me explain.
>library(rgl)
>library(plot3D)
>x <- 1:10
>y <- 1:20
>fun1 <- function (x,y) {x^2+y^2}
>z <- outer(x,y, fun1)
>open3d()
>surface3d(x,y,z,col="red",theta=50, phi=20)
>
>This works fine. However, when I have a data frame of x, y and z with z as a 
>vector, how do I proceed?
>z <- x^2+y^2
>> surface3d(x,y,z,col="red",theta=50, phi=20)
>
>Error in surface3d(x, y, z, col = "red", theta = 50, phi = 20) : 
>  At least one coordinate must be a matrix 
>
>How do I get z in the form of a matrix?
>Thanks.
>
>______________________________________________
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to