我是 R 的初学者,并提前为问一个基本问题道歉,但我无法在 Google 上的任何地方找到答案(可能是因为这个问题太基本了,我什至不知道如何正确搜索它..: D)
因此,如果我在 R 中执行以下操作:
v = c(50, 25)
names(v) = c("First", "Last")
v["First"]/v["Last"]
我得到的输出为:
First
2
为什么名称“First”出现在输出中以及如何摆脱它?
最佳答案
来自 help("Extract")
, 这是因为
Subsetting (except by an empty index) will drop all attributes except
names
,dim
anddimnames
.
和
The usual form of indexing is
[
.[[
can be used to select a single element droppingnames
, whereas[
keeps them, e.g., inc(abc = 123)[1]
.
由于我们选择的是单个元素,您可以切换到双括号索引
[[
并且名称将被删除。v[["First"]] / v[["Last"]]
# [1] 2
至于使用单括号索引时保留哪个名称,看起来它总是第一个(至少使用
/
运算符)。我们必须深入研究 C 源代码以获得进一步的解释。如果我们切换顺序,我们仍然会得到结果中的名字。v["Last"] / v["First"]
# Last
# 0.5
关于r - R 中的命名元素操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289293/