【发布时间】:2015-11-28 09:36:36
【问题描述】:
我在名为mrns 的list 中有323 个data.frames。在每个data.frame 中,都有一个名为raw.Systolic 的变量。我需要做的是在所有 323 个data.frames 中找到最小/最大raw.Systolic。我可以为每个data.frame 输出最小值,但这不是我需要的。
到目前为止,我得到的最接近的是输出每个文件的最小值列表并试图找到一种方法来找到该输出的最小值,但我不知道如何。
这是我目前所拥有的:
for (i in 1:323) {
print(min(mrns[[i]]$raw.Systolic, na.rm=TRUE))
}
哪些输出:
[1] 86
[1] 109
[1] 114
[1] 104
[1] 115
...etc until 323 maximums are listed
当我这样做时:
for (i in 1:323) {
mins <- min(mrns[[i]]$raw.Systolic, na.rm=TRUE)
}
我明白了:
> mins
[1] 129
有人有什么建议吗?
【问题讨论】:
-
min(sapply(mrns,function(x)min(x$raw.Systolic))),或者对于最大值和最小值,range(c(sapply(mrns,function(x)range(x$raw.Systolic)))) -
@MichaelChirico 为什么要用内层
min? -
@Roland 我想这没必要吧。没有样本数据,因此无法进行任何基准测试。
-
@Roland 三思而后行,如果
data.frames 在nrow中不同,sapply将返回一个列表,并且外部最小值将不再起作用。 -
@MichaelChirico 最小值的最小值与所有值的最小值相同。所以,是的,你绝对可以在循环内保存对
min的调用。