【发布时间】:2017-01-10 08:47:57
【问题描述】:
我希望能够编写一种更简洁的方式来执行以下操作:
我有一个 data.frame P (5000rows x 4cols) 并且想在第 1 列中的时间戳落入由向量 TimeStamp 确定的设定范围内时找到第 2,3 和 4 列中的中值(在秒)。
dput(TimeStamp)
c(18, 138, 438, 678, 798, 1278, 1578, 1878, 2178)
dput(head(P))
structure(list(Time = c(0, 5, 100, 200, 500, 1200), SkinTemp = c(27.781,
27.78, 27.779, 27.779, 27.778, 27.777), HeartRate = c(70, 70,
70, 70, 70, 70), RespirationRate = c(10, 10, 10, 10, 10, 10)), .Names = c("Time",
"SkinTemp", "HeartRate", "RespirationRate"), row.names = c(NA,
6L), class = "data.frame")
例如
for x<i<y in P[,1]
find median of all values in P[,2], P[,3] and P[,4]
Put median values into a new matrix with headers SkinTemp, HeartRate and RespirationRate
end
【问题讨论】:
-
试试
aggregate(P[,-1],list(Time=findInterval(P$Time,TimeStamp)),median)。 -
嗨,nicola,谢谢你这么快的回复。 P[,-1] 中的 -1 是什么意思?
-
这意味着
aggregate-call 不包括输入的第一列(在本例中是旧的Time-变量)。
标签: r