如何根据R中的字段值从矩阵中选择数据子集

时间:2017-09-26 04:12:51

标签: r

我的数据如下:

QUERY_SOURCE    FIELDS_SEARCHED SIMILARITY  MEASURE TOPIC_NUM   VALUE
D   A   bm25    infAP   1   0.008
D   A   bm25    infNDCG 1   0.0776
D   A   bm25    iP10    1   0.1
D   A   bm25    iP50    1   0.08
D   A   bm25    iP100   1   0.06
D   A   bm25    inum_rel_ret    1   6.0001
D   A   bm25    inum_rel    1   109.8145
D   A   bm25    num_ret 1   1000
D   A   bm25    infAP   2   0.0262

如何为特定列值选择数据系列到R DataFrame中,即我想要Query_Source ='D'的'Value'条目,Measure ='infAP'用于TOPIC_NUM的值[1..30] < / p>

任何建议都非常感谢。

3 个答案:

答案 0 :(得分:1)

我们可以创建一个逻辑索引来对&#39; VALUE&#39;进行子集化。 (假设数据集是data.frame

with(df1, VALUE[QUERY_SOURCE == "D" & MEASURE == "infAP" & TOPIC_NUM %in% 1:30])

答案 1 :(得分:1)

您可以使用subset功能。

# lets say df is your input data frame
subset(df, Query_Source=='D' & Measure=='infAP' & TOPIC_NUM > 1 & TOPIC_NUM < 30)

这会直接返回一个数据框。此外,您可以根据自己的喜好添加任意数量的条件。

答案 2 :(得分:0)

使用dplyr

df%>%filter(QUERY_SOURCE == "D" & MEASURE == "infAP" & TOPIC_NUM %in% 1:30)%>%select(VALUE)

使用data.table

df1[QUERY_SOURCE == "D" & MEASURE == "infAP" & TOPIC_NUM %in% 1:30,VALUE]