首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在r中的dataframe中添加多列包括na。

在r中的dataframe中添加多列包括na。
EN

Stack Overflow用户
提问于 2020-06-15 05:51:33
回答 2查看 169关注 0票数 0

我有这样的数据:

如果一行中有任何数值,我希望创建一个新列,它是其他列的之和,方法是忽略NA。但是,如果在一行中所有值(如第二行)都是na,则sum列将得到NA

EN

回答 2

Stack Overflow用户

发布于 2020-06-15 05:59:05

假设您的数据框架名为df

代码语言:javascript
运行
复制
cbind(df, apply(df, 1, function(x){if (all(is.na(x))) {NA} else {sum(x, na.rm = T)}))

请注意,如果您的数据框架有其他列,则需要将apply中的apply调用限制为您所追求的列。

票数 1
EN

Stack Overflow用户

发布于 2020-06-15 06:16:26

您可以在NA中计数df值。如果一行中没有非NA值,则可以将输出赋值为NA或使用rowSums计算逐行和。

代码语言:javascript
运行
复制
ifelse(rowSums(!is.na(df)) == 0, NA, rowSums(df, na.rm = TRUE))
#[1]  6000    NA 10000  8100     0

数据

代码语言:javascript
运行
复制
df <- structure(list(x = c(6000, NA, 10000, 100, 0), y = c(NA, NA, 
NA, 7000, 0), z = c(NA, NA, NA, 1000, NA)), class = "data.frame", 
row.names = c(NA, -5L))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62382101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档