R 对数据框列进行计算时忽略计算中的NA
我有如下格式的数据框:R 对数据框列进行计算时忽略计算中的NA,r,dataframe,na,R,Dataframe,Na,我有如下格式的数据框: 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&qu
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
如何执行此操作?我们可以在转换
类型后使用行和
,因为某些列类型是字符
library(dplyr)
df1 %>%
type.convert(as.is = TRUE) %>%
mutate(Bonus = as.numeric(Bonus),
Total=rowSums(cbind(First*`cut-off`/100,
(Second*300000/100), Bonus, Fixed), na.rm = TRUE))
-输出
# A tibble: 7 x 6
# First `cut-off` Second Bonus Fixed Total
# <dbl> <int> <dbl> <dbl> <int> <dbl>
#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 0
#一个tible:7 x 6
#第一个“截止”第二个奖金固定总额
#
#1 3.2 100000 1.1 NA 6500
#2 3.2 100000 1.2 NA 6800
#3.2 100000 1.2 NA 6800
#4 NA NA 4000
#5 3.3 100000 1.2 NA NA 6900
#6Na-NA 1.6Na-NA 4800
#7钠钠钠0
谢谢您的支持。我得到了一条错误消息,尽管我说error:mutate()输入总计有问题。未找到x对象“second”,我输入的总计为行和(…)。
此外,奖金列不仅是字符列,而且是其他列。您是否有任何理由只转换了bounu
列?你能解释一下为什么我们有type.convert
?@Roozbeh\u你有Second
作为列名,而不是Second
吗
# A tibble: 7 x 6
# First `cut-off` Second Bonus Fixed Total
# <dbl> <int> <dbl> <dbl> <int> <dbl>
#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 0