Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中访问表中的单个元素_R_Indexing - Fatal编程技术网

如何在R中访问表中的单个元素

如何在R中访问表中的单个元素,r,indexing,R,Indexing,如何从R中的表中获取元素 我的数据如下所示: V1 V2 1 12.448 13.919 2 22.242 4.606 3 24.509 0.176 等等 我基本上只想单独获取元素。我对所有的R术语(如向量)感到困惑,我只想了解单个元素 有没有一个函数,我可以像data[v1][1]那样,只需执行,就可以得到第1行第1列中的元素?这个函数非常基本,我想知道你在学习哪本书?试一试 data[1, "V1"] # row first,

如何从R中的表中获取元素

我的数据如下所示:

         V1     V2
1      12.448 13.919
2      22.242  4.606
3      24.509  0.176
等等

我基本上只想单独获取元素。我对所有的R术语(如向量)感到困惑,我只想了解单个元素


有没有一个函数,我可以像
data[v1][1]
那样,只需执行,就可以得到第1行第1列中的元素?

这个函数非常基本,我想知道你在学习哪本书?试一试

data[1, "V1"]  # row first, quoted column name second, and case does matter
进一步说明:讨论R的术语可能很关键,有时也很棘手。使用术语“table”来指代该结构,可能是一个“table”类对象,或者是一个“matrix”类对象,或者是一个“data.frame”类对象。上面的答案对于任何一个都会成功,而下面@BenBolker的建议只会对“data.frame”类对象成功

尽管最近投了反对票,但我在措辞上毫不后悔。R中有大量免费的入门材料:

?“[”
几乎涵盖了访问事物元素的各种方式

在“用法”下,它列出了以下内容:

x[i]
x[i, j, ... , drop = TRUE]
x[[i, exact = TRUE]]
x[[i, j, ..., exact = TRUE]]
x$name
getElement(object, name)

x[i] <- value
x[i, j, ...] <- value
x[[i]] <- value
x$i <- value
正如这一点:

data$V1[1]
请记住,数据帧是向量列表:

data[[1]][1]
data[["V1"]][1]
这两种方法同样有效


这是需要做的几件事。我建议你在“帮助”页面底部一行一行地输入示例(是的,实际上一行一行地输入整个内容,看看它们都做了什么,你会很快地收集到内容,输入而不是复制是帮助记忆的一个重要部分。)也许没有上面提到的那么完美,但我想这就是你想要的

data[1:1,3:3]    #works with positive integers
data[1:1, -3:-3] #does not work, gives the entire 1st row without the 3rd element
data[i:i,j:j]    #given that i and j are positive integers
这里索引将从1开始工作,即

data[1:1,1:1]    #means the top-leftmost element

尝试阅读手册:并且。在发布之前,我查看了这两个链接,但没有看到注释。答案中描述了注释。不明白为什么这被否决。这是一个结构良好的问题,答案合理。(我否决了)。我同意这是一个结构良好的问题,但它非常基本。如果你说“我阅读了索引帮助页面”(
?Extract
)…”,或者“我阅读了R简介中关于选择数据集子集的第2.7节…”,或者如果我自己已经证明了解决问题的努力,我会更仁慈一些。(我看到你现在在评论中这样说了。)我只是担心我们会被基本的索引问题弄得不知所措……如果你编辑(这样我就可以),我会取消我的否决票。这是一个数据框,不是一个表。或者
数据[[“V1”]][1]
(更接近原始问题)使用
read.cv
读取表,当我尝试时:
dat[[“V1”][1]
我得到这个
[1]5042951 54级:11054 1156785)1157947)1159014)1166898)1174855)…src,trg,sp_len,hops
我如何得到刚才的
5042951
?@sAguinaga您有一个因子变量。
as.character()
-函数应该围绕dat['V1']来提取因子值。然后使用
[1]
选择第一个。再次阅读这些评论的任何人都应该理解Ben Bolker的策略仅对数据帧有效,逻辑是先选择一整列,然后获取其中的第一项。我的建议对矩阵和数据帧都会成功。在这种情况下,无法确定原始数据帧是否为ata是一个数据帧或矩阵对象。不管它值多少钱,R充满了不同寻常的语法。有很多程序员习惯于像
foo[y][x]这样的索引
,并说程序员可能能够在遇到绊脚石之前在R中走得相当远,比如发现这种双下标符号并没有达到他们预期的效果。当你用另一种语言思考时,不知道它叫什么,因此堆栈溢出,谷歌很难做到这一点w是一个合理的提问地点。使用“[”有两个用逗号分隔的索引参数用于数据帧和矩阵访问。我发现很难相信,在任何关于R的合理介绍中,很早就没有涉及到这一点。如果有人是从另一种语言来到R的,并且没有阅读任何介绍性材料,那么我认为在不考虑他们选择的人的情况下继续提问我确实同意在谷歌上搜索基本的索引语法可能并不容易,但这就是为什么从印刷的介绍中进行一些自学是首选。)所以这是
?“[”
…我尝试了
?[
?[
之类的事情,但我一直收到
错误:意外”[“in”?[“
。谢谢!是的,你必须引用任何不是简单的字母数字或是关键字的东西(例如,你还需要引用if和for,例如--
?“if”
“if”
“not
?if
for
)。即使不需要引用,也没有坏处。
data[1:1,1:1]    #means the top-leftmost element