在 R 中,如何填充在设置过程中不知道其大小的矩阵或 data.frame?

发布于 2024-12-12 21:32:27 字数 338 浏览 0 评论 0原文

所以,我有一个脚本,我想动态创建一个矩阵或 data.frame。

但是,我不知道输入的矩阵/框架的尺寸。当我尝试创建一个空白矩阵并添加值时,我收到“下标越界”错误,

这是我的一些代码:

data <- read.csv("C:/3PP/data.txt", header=F)

parsed = matrix()
for (i in 1:nrow(data))
{
  parsed[data[i,1],data[i,2]+1] = data[i,3]
}

我怎样才能设置该矩阵以便可以动态生成该矩阵,而不必在开始时指定大小?

谢谢你!

So, I have a script which I would like to create a matrix or data.frame on the fly.

However, I do not know the dimensions of the matrix/frame going in. When I try to just create a blank matrix and adding values, I get the "subscript out of bounds" error,

Here is some of my code:

data <- read.csv("C:/3PP/data.txt", header=F)

parsed = matrix()
for (i in 1:nrow(data))
{
  parsed[data[i,1],data[i,2]+1] = data[i,3]
}

How can I set this up such that this matrix can be generated on the fly, without having to specify the size in the beginning?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝情姑娘 2024-12-19 21:32:27

鉴于您的问题,您已经知道行数和列数。您可以像这样指定矩阵:

parsed <- matrix(nrow=max(Data[,1]),
                 ncol=max(Data[,2])+1)

增长矩阵的唯一其他方法是使用 rbind() 或 cbind() ,但是对于大矩阵来说,这可能会变得相当慢。

Given your problem, you know already the number of rows and columns. You can specify your matrix like:

parsed <- matrix(nrow=max(Data[,1]),
                 ncol=max(Data[,2])+1)

The only other way to grow a matrix is by using rbind() or cbind(), but that can get pretty slow with big matrices.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文