在R中访问命名向量中的元素,而不使用变量名

3

我正在尝试在R中访问命名字符向量中元素的值。使用http://www.r-tutor.com/r-introduction/vector/named-vector-members中的示例,我尝试了以下内容:

v = c("Mary", "Sue")
v
[1] "Mary" "Sue"
names(v) = c("First", "Last")
v
 First   Last
"Mary"  "Sue"
v["First"]
 First
"Mary"

我希望这个函数返回“Mary”,而不是“First:Mary”(就像上面的教程中所示),但是每次尝试时它总是返回名称和值。我尝试将其设置为变量,希望它只会返回值。
> teststr = v["First"]
> teststr
 First
"Mary"
>

但我仍然能得到变量名(First)和值。我尝试了以下方法,但它返回相同的元素名称和值。
>
> v[names(v)=="First"]
 First
"Mary"
>

我从工作项目中获得的数据也产生了相同的结果。只需要得到 "Mary" 而不是 "First",希望能得到帮助。
谢谢 - Pankaj
1个回答

8

你可以使用unname

> unname(v["First"])
[1] "Mary"

此外,您还可以使用getElement作为替代方案。
> getElement(v, "First")
[1] "Mary"

1
另外,双重括号:v[["First"]]。我认为仅仅因为上面有一个注释就不把它包含进去是不合适的理由... - Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接