【发布时间】:2020-10-23 01:35:45
【问题描述】:
我正在尝试打印数据集中每一行的最小值(和最大值)。我可以使用它来打印一行 min(dataset1[1,])
但是我怎样才能修改这个来为所有 100 行做呢?
【问题讨论】:
标签: r
我正在尝试打印数据集中每一行的最小值(和最大值)。我可以使用它来打印一行 min(dataset1[1,])
但是我怎样才能修改这个来为所有 100 行做呢?
【问题讨论】:
标签: r
您可以使用range 同时给出最小值和最大值。
t(apply(d, 2, range))
# [,1] [,2]
# X1 -0.5646982 1.3709584
# X2 -0.1061245 2.0184237
# X3 -1.3888607 2.2866454
# X4 -2.6564554 1.3201133
# X5 -1.7813084 1.8951935
# X6 -1.7631631 0.4600974
为了速度,试试
matrixStats::colRanges(as.matrix(d))
数据:
set.seed(42)
d <- data.frame(matrix(rnorm(5*6), 5, 6))
【讨论】:
这行得通吗?使用 dplyr 包。
set.seed(123)
dat <- data.frame(c1 = round(rnorm(10,10,1)),
c2 = round(rnorm(10,10,1)),
c3 = round(rnorm(10,10,1)))
dat %>% rowwise() %>% mutate(row_min = min(c_across(c1:c3)), row_max = max(c_across(c1:c3)))
# A tibble: 10 x 5
# Rowwise:
c1 c2 c3 row_min row_max
<dbl> <dbl> <dbl> <dbl> <dbl>
1 9 11 9 9 11
2 10 10 10 10 10
3 12 10 9 9 12
4 10 10 9 9 10
5 10 9 9 9 10
6 12 12 8 8 12
7 10 10 11 10 11
8 9 8 10 8 10
9 9 11 9 9 11
10 10 10 11 10 11
【讨论】:
您可以使用apply 函数对数据框的每一行运行方法。比如下面会求出数据框dataset每一行的最小值:
apply(dataset, 1, min)
【讨论】: