【发布时间】:2019-05-08 20:07:37
【问题描述】:
我有以下结构:
df <- head(mtcars[,c("cyl","disp","hp")])
criteria <- data.frame("cyl" = c(3,8), "disp" = c(180,380), "hp" = c(90,120),row.names = c("min","max"))
df
cyl disp hp
Mazda RX4 6 160 110
Mazda RX4 Wag 6 160 110
Datsun 710 4 108 93
Hornet 4 Drive 6 258 110
Hornet Sportabout 8 360 175
Valiant 6 225 105
> criteria
cyl disp hp
min 3 180 90
max 8 380 120
现在我想创建一个新列,它首先根据标准数据框检查标准,然后计算一个比率。例如,我想创建一个名为“disp/cyl”的列,它应该首先根据条件列检查 disp 和 cycl 列是否在最小值和最大值范围内。如果是这种情况,那么计算应该是比率 disp/cyl。如果不是这种情况,它应该只返回 0。同样,我想对名为“hp/disp”的列执行相同操作,它应该检查 disp 和 hp 是否满足最小值和最大值,然后计算 hp/disp 的比率否则它应该只返回 0。
这是否可能以某种方式一次性完成?我将如何建立标准?
【问题讨论】:
-
你想要这个仅用于 hp/disp 还是包含 'cyl'
-
我只想将新列添加到原始数据框中。应包括原始列。
标签: r