dfrm[-6ren">
gpt4 book ai didi

R 为什么按行名称和组件名称列出数据框中的元素会返回 NA?

转载 作者:行者123 更新时间:2023-12-04 12:23:00 27 4
gpt4 key购买 nike

我创建了一个包含一列的数据框 dfrm,并将行名称设置为:

v1 = c(1,2,3)
dfrm <- data.frame(v1)
row.names(dfrm) <- c("AD","BP","CD")

dfrm
v1
AD 1
BP 2
CD 3

我可以按行名和索引访问元素:
dfrm$v1[1]
[1] 1

我可以通过引号中的行名称和组件名称访问元素:
dfrm["AD","v1"]
[1] 1

但是为什么我不能通过行名称和组件名称访问元素?
dfrm$v1["AD"]
[1] NA

最佳答案

答案是向量没有行名,尽管它们可以有名称。

当您将列作为列表项访问时,R 不会执行将行名传递给向量名称的额外步骤:

> dfrm$v1
[1] 1 2 3
> dfrm[["v1"]]
[1] 1 2 3
> dfrm[,"v1"]
[1] 1 2 3
> dfrm[,1]
[1] 1 2 3
> names(dfrm$v1)
NULL

请注意,这可能是一件好事,因为这有帮助的情况是有限的,并且每次 data.frame 拉出一列时复制名称的开销可能不值得。

如果你想自己复制它们:
> vone <- dfrm$v1
> names(vone) <- rownames(dfrm)
> vone
AD BP CD
1 2 3

关于R 为什么按行名称和组件名称列出数据框中的元素会返回 NA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13360295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com