gpt4 book ai didi

r - do for/while 循环的矢量版本

转载 作者:行者123 更新时间:2023-12-05 00:16:38 24 4
gpt4 key购买 nike

我希望能够编写一种更简洁的方式来执行以下操作:

我有一个 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)),m‌​edian)  
# Time SkinTemp HeartRate RespirationRate
#1 0 27.7805 70 10
#2 1 27.7790 70 10
#3 2 27.7790 70 10
#4 3 27.7780 70 10
#5 5 27.7770 70 10

你想分割 Time值根据它们落入的区间。有一个 R执行此操作的函数: findInterval .因此,我们计算每个 Time 的间隔值然后 aggregate其他列的值并计算 median .

关于r - do for/while 循环的矢量版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41564650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com