首页 > 解决方案 > 如何将两列的一些元素相乘?

问题描述

假设有 3 个不同的列:

PAYPR         UNIT                 ACTDUR
40       (4) Per month               60 
100      (5) Per hour                30 
50       (6) Per year                10
5        (1) Per day                 20

当 UNIT 列是“(5)每小时”我想做

 PAYPR<-PAYPR*ACTDUR/60 

所以输出是

  PAYPR         UNIT                 ACTDUR
   40       (4) Per month               60 
100*30/60   (5) Per hour                30 
   50       (6) Per year                10
   5        (1) Per day                 20

标签: rdataframe

解决方案


创建逻辑索引并根据中的内容修改“PAYPR”的值base R

i1 <- df1$UNIT == "(5) Per hour"
df1$PAYPR[i1] <- df1$PAYPR[i1]* df1$ACTDUR[i1]/60
df1
#  PAYPR          UNIT ACTDUR
#1    40 (4) Per month     60
#2    50  (5) Per hour     30
#3    50  (6) Per year     10
#4     5   (1) Per day     20

数据

df1 <- structure(list(PAYPR = c(40L, 100L, 50L, 5L), UNIT = c("(4) Per month", 
"(5) Per hour", "(6) Per year", "(1) Per day"), ACTDUR = c(60L, 
30L, 10L, 20L)), class = "data.frame", row.names = c(NA, -4L))

推荐阅读