【发布时间】:2018-03-02 11:19:50
【问题描述】:
我的问题是一个相对简单的问题,我通常会用subset 来解决。在这种情况下,我需要一个向量而不是数据框作为结果,我希望有人能提供帮助。
我有一个包含两列、物种和 ID 的数据框。
Species ID
Species1 A01
Species1 A02
Species1 B01
Species1 B02
Species2 A03
Species2 A04
Species2 B03
Species2 B04
Species3 A05
Species3 A06
Species3 B05
Species3 B06
Species3 B07
对于每个物种,我想为该物种创建一个相关 ID 的向量。
使用子集我会这样做:
df2 <- subset(df1, Species == Species1, select = "ID")
结果是
ID
A01
A02
B01
B02
但这给了我作为数据框的结果,我希望将结果作为向量。
我一直在寻找答案,但找不到答案,而且我对 R 还很陌生 - 也许如果存在知识差距,这可以解释。
【问题讨论】:
-
unlist(subset(...))或df1$ID[df1$Species=="Species1"]或with(df1, ID[Species=="Species1"]或 ... -
感谢@Cath 第一个给出了一个奇怪的结果 - 用 ID_1、ID_2 等命名向量中的每个值,但第二个完美。
-
如果你只是插入
as.vector()函数?df2 <- as.vector(subset(df1, Species == Species1, select = "ID")) -
我认为这也可以,但在这种情况下不行。它仍然在带有编号行的单列中返回结果。