我试图将我的矩阵切换到特定的行。现在的问题是通过下面的输出最好的解释:R哪个语句没有正确地选择字符串
Browse[2]> structure[which(structure$atom == "CA"),]
recordName serial atom
1: ATOM 2 CA
2: ATOM 10 CA
3: ATOM 18 CA
4: ATOM 24 CA
5: ATOM 31 CA
---
572: ATOM 4353 CA
573: ATOM 4358 CA
574: ATOM 4368 CA
575: ATOM 4377 CA
576: ATOM 4389 CA
Browse[2]> structure[which(structure$atom == atom),]
recordName serial atom
1: ATOM 1 N
2: ATOM 2 CA
3: ATOM 3 C
4: ATOM 4 O
5: ATOM 5 CB
---
4392: ATOM 4394 ND1
4393: ATOM 4395 CD2
4394: ATOM 4396 CE1
4395: ATOM 4397 NE2
4396: ATOM 4398 OXT
Browse[2]> atom
[1] "CA"
我的问题是,为什么当我在原子而不是键入CA,我得到一个不同的选择,以行。如你所见,变量本身等于“CA”。
谢谢你的帮助!
其他变量的桩真的AREN”这个例子是必要的 - 我已经删除了它们。顺便说一句,你的数据是'data.table'还是'data.frame'? – thelatemail
需要注意的是,您不使用data.frame,而是使用data.table。 data.table评估它是data.table本身上下文中的索引。这意味着你可以执行结构[atom ==“CA”],这也意味着如果你有一个名为'atom'的变量,那么它与'structure [atom == atom]'相同,因为它返回所有的行,因为它首先在表格中找到“原子”符号并使用该值。 – MrFlick
我认为这是一个'data.table','=='之后的'atom'在表中被评估。 –