require(plyr)
require(dplyr)
set.seed(8)
df <-
data.frame(
v1 = runif(10, -1,1),
v2 = runif(10, -1,1))
Run Code Online (Sandbox Code Playgroud)
问题:我怎样才能获得正确的值到min()功能的一部分mutate()-基本上,我想分配v3为v1具有最小的划分v1和v2.这不起作用:
df <-
df %>% mutate(v3=ifelse(v1 !=0, v1/min(v1,v2), 0))
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些非常简单的事情.
tal*_*lat 26
从帮助页面?min:
pmax和pmin将一个或多个向量(或矩阵)作为参数并返回单个向量,给出向量的"并行"最大值(或最小值).
另一方面:
max和min返回其参数中存在的所有值的最大值或最小值
所以你想在pmin这里使用.使用dplyr,一个选项 - 如上所述 - 是这样的:
df %>% mutate(v3 = (v1 != 0) * v1/pmin(v1,v2))
Run Code Online (Sandbox Code Playgroud)
这里很好的副作用是你可以避免使用ifelse逻辑向量(TRUE/FALSE,然后转换为1/0).
| 归档时间: |
|
| 查看次数: |
8787 次 |
| 最近记录: |