数据框作为选择标准

时间:2015-08-27 16:06:18

标签: r csv dataframe selection criteria

有没有办法使用一个数据框,其中x个标题各包含1个值作为另一个更大数据集的选择标准?

例如:

VH <- na.omit(data_frame[data_frame$distance>=1000 & data_frame$distance<=4000 & data_frame$corde==conditions_course$hippo_corde, c("date_course","handicap.1","distance","corde","nb_part","classement","nom_cheval")])
> VH
    date_course handicap.1 distance corde nb_part classement     nom_cheval
11   2015-07-25         56     3600     D      17          4        Bushido
16   2015-07-25         56     3600     D      17          5        Ami Sol
32   2015-07-30         55     3700     D      12          8   Pourtoimarco
33   2015-07-10         53     3400     D       9          1   Pourtoimarco
56   2015-07-25         61     3600     D      17          2 Vicomte dAnjou
57   2015-06-30         58     3400     D      17          1 Vicomte dAnjou
73   2015-07-25         59     3600     D      17          3     Besnardine
74   2015-06-30         59     3400     D      17          2     Besnardine
100  2015-07-30         56     3700     D      12          7       Bénuisca

我可以继续添加data_frame$corde==conditions_course$hippo_corde匹配条件,但除了不优雅之外,它还需要人工干预,而在csv文件中定义标准及其值可以自动化这部分数据选择。

从这里开始编辑 我在这里放了一个文件:http://we.tl/c7gcv5BO9K 该文件包含过去的马匹表演。还有另一个名为infocourse.csv的文件包含相同的标题,只有一行值表示任何一天的比赛条件。 目标是在20个首发(例如)中“找到”每个有20个表演,这些比赛与比赛条件最相关。 距离(+/- 200) corde(完全匹配) libel_hippo(确切) ssp(确切)

以下是我所做的事情,我只想问是否有更通用的方法来设置它。

#I first read all csv of starters
file_names <-list.files(pattern = "\\d")
data_frame <- do.call(rbind,lapply(file_names,read.csv,header=TRUE, sep = ";"))
#then I convert certain fields so they can be matched
data_frame$date_course <- as.Date(data_frame$date_course, "%d/%m/%Y")
data_frame$corde <- as.character(data_frame$corde)
#then this is the part that I'd like to make more customizable
pertinent_RKM<-na.omit(data_frame[data_frame$distance>=2600 & data_frame$distance<=3400 & data_frame$date_course>="2015-06-01" & data_frame$date_course<="2015-09-01", c("date_course","libel_hippo","redkm","distance","nom_cheval","classement","nb_part")])
bestRKM<-aggregate(redkm ~ nom_cheval, pertinent_RKM, mean)
bestRKMtrie<-bestRKM[with(bestRKM, order(redkm)),]

希望这更清楚。由于数据集和条件变量在现实生活中更大,因此它已被简化以用于讨论。 感谢这个伟大的网站和社区!

0 个答案:

没有答案