创建数据框时的R名称列

发布于 2024-12-25 21:28:32 字数 860 浏览 2 评论 0原文

我从数据框中取出列并使用它们创建另一个数据框,但名称不断变得混乱,而不是保留原始名称。我该如何避免这种情况?

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
  X.security_id...rsPred1.security_id.
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2

应该是这样的:

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
                                security_id
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2

I'm taking the columns from a data frame and using them to create another data frame, but the names keep getting jumbled instead of keeping the original name. How do I avoid this?

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
  X.security_id...rsPred1.security_id.
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2

It should be like this:

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
                                security_id
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2

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

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

发布评论

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

评论(3

岁月静好 2025-01-01 21:28:32

这是因为您将括号 ((.
比较

dfr <- data.frame(x = 1:5)
#Case 1
data.frame(x = dfr$x)
#Case 2
data.frame((x = dfr$x))

在情况 1 中,x = dfr$x 是传递到 data.frame 函数中的名称/值对。

在情况 2 中,(x = dfr$x) 返回一个没有名称的向量,因此 R 发明了一个临时向量,然后将该向量传递到 data.frame 函数中。

It's because you've doubled up the brackets ((.
Compare

dfr <- data.frame(x = 1:5)
#Case 1
data.frame(x = dfr$x)
#Case 2
data.frame((x = dfr$x))

In case 1, x = dfr$x is a name-value pair being passed into the data.frame function.

In case 2, (x = dfr$x) returns a vector with no name, so R invents a temporary one and then passes that vector into the data.frame function.

嘴硬脾气大 2025-01-01 21:28:32

创建数据框时,不要使用双括号:

newDigit1 <- data.frame(security_id = rsPred1$security_id)

不是

newDigit1 <- data.frame((security_id = rsPred1$security_id))

When you create your data frame, don't have the double brackets:

newDigit1 <- data.frame(security_id = rsPred1$security_id)

Not

newDigit1 <- data.frame((security_id = rsPred1$security_id))
避讳 2025-01-01 21:28:32

只需拆下一个支架即可:

newDigit1 <- data.frame(security_id = rsPred1$security_id)

现在应该可以工作了!

simply remove one bracket:

newDigit1 <- data.frame(security_id = rsPred1$security_id)

should be working now!

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