【发布时间】:2015-03-26 12:02:57
【问题描述】:
我正在尝试根据时间范围对数据框进行子集化。过去有人问过这个问题,答案是使用R CMD INSTALL lubridate_1.3.1.tar.gz(见链接:subset rows according to a range of time。
这个答案的问题是我收到以下警告:
> install.packages("lubridate_1.3.2.tar.gz")
Warning in install.packages :
package ‘lubridate_1.3.2.tar.gz’ is not available (for R version 3.1.2)
我正在寻找与此答案非常相似的内容,但我无法弄清楚如何做到这一点。我有一个MasterTable,我的所有数据都组织成列。我的专栏之一叫做maxNormalizedRFU。
我的问题很简单:
如何按时间对我的 maxNormalizedRFU 列进行子集化?
我只想添加另一列,它只显示maxNormalizedRFU 10 小时到 14 小时之间的数据。这是我到目前为止所拥有的:
MasterTable <- inner_join(LongRFU, LongOD, by= c("Time.h", "Well", "Conc.nM", "Assay"))
#基于称为“测定”的 6 个不同子集,通过荧光 (RFU) 和光密度 (OD) 对我的数据进行归一化
MasterTable$NormalizedRFU <- MasterTable$AvgRFU/MasterTable$AvgOD
#创建一个只选择每个“分析”的最大值的列
MasterTable <- ddply(MasterTable, .(Conc.nM, Assay), transform, maxNormalizedRFU=max(NormalizedRFU))
#问题
MasterTable$CutmaxNormalizedRFU <- ddply(maxNormalizedRFU, "Time.h", transform, [MasterTable$Time.h < 23.00 & MasterTable$Time.h > 10.00,])
Attached 是我的数据集的一个样本。由于原始文件有超过 90 000 行,我只附上了一小部分(只有一个检测和一个浓度)。
我的生产线目前正在使用 ddply 来执行子集,但这根本行不通。有人对如何解决此问题有建议吗?
提前谢谢你!
马蒂
【问题讨论】: