我想获得最少两列并在同一data.frame中创建一列.我怎样才能做到这一点?
例如:
ID Parm1 Parm2
1 1 2
2 0 1
3 2 1
4 1 0
5 2 0
Run Code Online (Sandbox Code Playgroud)
期望的输出:
ID Parm1 Parm2 Min
1 1 2 1
2 0 1 0
3 2 1 1
4 1 0 0
5 2 0 0
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
Rei*_*son 27
您希望在函数中实现并行最小值pmin().例如,使用您的数据:
dat <- read.table(text = "ID Parm1 Parm2
1 1 2
2 0 1
3 2 1
4 1 0
5 2 0", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
您可以使用transform()添加min列作为输出pmin(Parm1, Parm2)并访问dat没有索引的元素:
dat <- transform(dat, min = pmin(Parm1, Parm2))
Run Code Online (Sandbox Code Playgroud)
这给出了:
> dat
ID Parm1 Parm2 min
1 1 1 2 1
2 2 0 1 0
3 3 2 1 1
4 4 1 0 0
5 5 2 0 0
Run Code Online (Sandbox Code Playgroud)
在 tidyverse Universe 中,使用dplyr包:
library(dplyr)
dat <- read.table(text = "ID Parm1 Parm2
1 1 2
2 0 1
3 2 1
4 1 0
5 2 0", header = TRUE)
dat %>%
rowwise() %>%
mutate(min = min(Parm1, Parm2))
#> # A tibble: 5 x 4
#> # Rowwise:
#> ID Parm1 Parm2 min
#> <int> <int> <int> <int>
#> 1 1 1 2 1
#> 2 2 0 1 0
#> 3 3 2 1 1
#> 4 4 1 0 0
#> 5 5 2 0 0
Run Code Online (Sandbox Code Playgroud)
由reprex 包(v0.3.0)于 2020 年 11 月 15 日创建
| 归档时间: |
|
| 查看次数: |
25581 次 |
| 最近记录: |