我在名为data.frame
的{{1}}中有323 list
个。在每个mrns
中,都有一个名为data.frame
的变量。我需要做的是在所有323 raw.Systolic
中找到最小/最大raw.Systolic
。我可以为每个data.frame
输出最小值,但这不是我需要的。
我到目前为止最接近的是输出每个文件的最小值列表,并试图找到找到该输出的最小值的方法,但我不知道如何。
这是我到目前为止所做的:
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)
}
有人有任何建议吗?
答案 0 :(得分:1)
尝试,
min(unlist(lapply(mrns, function(x) min(x$raw.Systolic, na.rm=T))))
答案 1 :(得分:1)
我们可以这样做:
#minima:
do.call("min",sapply(mrns,getElement,name="raw.Systolic"))
#ranges
do.call("range",sapply(mrns,getElement,name="raw.Systolic"))
#NA-proof
do.call("min",c(sapply(mrns,getElement,name="raw.Systolic"),na.rm=T))
请注意,getElement
只是函数形式的提取运算符$
,即x$y
与getElement(object=x,name="y")
相同。
如果您知道mrns
的所有元素都有相同的行数,请改用min(sapply(...))
。
由于sapply
可能会返回list
,因为mrns
的每个元素可能有不同的行数,我们使用do.call
允许我们传递list
{1}}至min
和range
。