【发布时间】:2020-11-23 22:10:09
【问题描述】:
我有一个如下所示形式的数据框:
structure(list(First = c("3.2", "3.2", "3.2", NA, "3.3", NA,
NA), `cut-off` = c("100000", "100000", "100000", NA, "100000",
NA, NA), Second = c("1.1", "1.2", "1.2", NA, "1.2", "1.6", NA
), Bonus = c(NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Fixed = c(NA, NA,
NA, "4000", NA, NA, NA)), row.names = c(NA, -7L), class = c("tbl_df",
"tbl", "data.frame"))
# A tibble: 6 x 5
First `cut-off` Second Bonus Fixed
<chr> <chr> <chr> <chr> <chr>
1 3.2 100000 1.1 NA NA
2 3.2 100000 1.2 NA NA
3 3.2 100000 1.2 NA NA
4 NA NA NA NA 4000
5 3.3 100000 1.2 NA NA
6 NA NA 1.6 NA NA
7 NA NA NA NA NA
我要做的是计算一个名为 Total 的新列,该列将根据以下公式计算:
Total=(First*cut-off/100)+(second*300000/100)+Bonus+Fixed
我遇到的问题是,根据情况,每行中的几个单元格将是 NA 但我想忽略 NA 并在数学计算中将其视为 0(但我不能将它替换为 0 至于某些当一行中的所有单元格都是 NA 时,我想在 Total 列中显示 NA)。因此,上述数据帧的加速结果将是:
First `cut-off` Second Bonus Fixed Total
<chr> <chr> <chr> <chr> <chr>
1 3.2 100000 1.1 NA NA 6500
2 3.2 100000 1.2 NA NA 6800
3 3.2 100000 1.2 NA NA 6800
4 NA NA NA NA 4000 4000
5 3.3 100000 1.2 NA NA 6900
6 NA NA 1.6 NA NA 4800
7 NA NA NA NA NA NA
我该怎么做?
【问题讨论】: