gpt4 book ai didi

r - 为什么 R 会找到一个不在 data.frame 中的 data.frame 变量?

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

为什么这不会导致错误?

> str(u)
'data.frame': 8879 obs. of 2 variables:
$ bundle_qty: int 1 1 1 1 1 1 1 1 1 1 ...
$ mail_a : num 1 1 1 1 0 0 0 1 1 0 ...

> head(u$mail)
[1] 1 1 1 1 0 0

变量 mail不在数据框 u !!!不应该 u$mail返回 NULL ??

即使我从头开始使用虚拟数据:
> rm(list=ls())
> u <- data.frame( bundle_qty = c(1,1,1,1), mail_a = c(1,1,1,1))
> str(u)
'data.frame': 4 obs. of 2 variables:
$ bundle_qty: num 1 1 1 1
$ mail_a : num 1 1 1 1
> u <- data.frame( bundle_qty = c(1L,1L,1L,1L), mail_a = c(1,1,1,1))
> str(u)
'data.frame': 4 obs. of 2 variables:
$ bundle_qty: int 1 1 1 1
$ mail_a : num 1 1 1 1
> u$mail
[1] 1 1 1 1

最佳答案

部分匹配,其中$运算符使用, 如果它可以唯一标识给定您提供的词干(例如 - mail )的变量,则将返回一个值。
例如。 - 没有其他以 mail 开头的内容在您的 data.frame ,所以你得到 mail_a回来。u["mail"]虽然会抛出错误。
再举一个例子,说明它在哪里工作,就像你想象的那样:

test <- data.frame(aa=1:10,aaa=letters[1:10])

> test$aa
[1] 1 2 3 4 5 6 7 8 9 10
> test$aaa
[1] a b c d e f g h i j
Levels: a b c d e f g h i j
> test$a
NULL
fortune(312) @mnel 指的是:

"The problem here is that the $ notation is a magical shortcut and likeany other magic if used incorrectly is likely to do the programmaticequivalent of turning yourself into a toad."

  • Greg Snow (in response to a user that wanted to access a column whosename is stored in y via x$y rather than x[[y]])R-help (February 2012)

关于r - 为什么 R 会找到一个不在 data.frame 中的 data.frame 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216389/

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