gpt4 book ai didi

r - 仅在添加数字时将 NA 视为零

转载 作者:行者123 更新时间:2023-12-04 05:53:41 25 4
gpt4 key购买 nike

计算两个数据表之和时,NA+n=NA .

> dt1 <- data.table(Name=c("Joe","Ann"), "1"=c(0,NA), "2"=c(3,NA))
> dt1
Name 1 2
1: Joe 0 3
2: Ann NA NA
> dt2 <- data.table(Name=c("Joe","Ann"), "1"=c(0,NA), "2"=c(2,3))
> dt2
Name 1 2
1: Joe 0 2
2: Ann NA 3
> dtsum <- rbind(dt1, dt2)[, lapply(.SD, sum), by=Name]
> dtsum
Name 1 2
1: Joe 0 5
2: Ann NA NA

我不想用 0 替换所有 NA。我想要的是 NA+NA=NANA+n=n得到以下结果:
   Name  1  2
1: Joe 0 5
2: Ann NA 3

这是如何在 R 中完成的?

更新:删除了 dt1 中的错字

最佳答案

你可以定义你自己的函数来按照你的意愿行事

plus <- function(x) {
if(all(is.na(x))){
c(x[0],NA)} else {
sum(x,na.rm = TRUE)}
}


rbind(dt1, dt2)[,lapply(.SD, plus), by = Name]

关于r - 仅在添加数字时将 NA 视为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com