我是R的初学者并提前道歉提出了一个基本问题,但我无法在谷歌的任何地方找到答案(也许是因为这个问题非常基本,我甚至不知道如何正确搜索它..:D)
所以,如果我在R中执行以下操作:
v = c(50, 25)
names(v) = c("First", "Last")
v["First"]/v["Last"]
我得到的输出为:
First
2
为什么名称“First”出现在输出中以及如何摆脱它?
答案 0 :(得分:8)
来自help("Extract")
,这是因为
子集(除了空索引)将删除除
names
,dim
和dimnames
之外的所有属性。
和
通常的索引形式是
[
。[[
可用于选择丢弃names
的单个元素,而[
会将其保留在c(abc = 123)[1]
中。
由于我们选择单个元素,您可以切换到双括号索引[[
,名称将被删除。
v[["First"]] / v[["Last"]]
# [1] 2
对于使用单括号索引时保留的名称,看起来它始终是第一个(至少使用/
运算符)。我们必须深入研究C源以获得进一步的解释。如果我们切换订单,我们仍会得到结果的第一个名字。
v["Last"] / v["First"]
# Last
# 0.5