合并列和组合内容
Merging columns and combining contents
我想合并两列并将它们的内容加在一起,例如
X1 X2
3 5
6 9
3 3
0 6
NA 4
NA NA
创建
X3
8
15
6
6
4
NA
任何指示将不胜感激?
在基础 R 中你可以这样做:
X3 <- X1 + X2
但这将 return NA,而您只有一个 NA。如果你想忽略 NA,并在添加 NA 和 4 时让它成为 return 4,你可以这样做:
X3 <- sum(X1, X2, na.rm = TRUE)
在 dplyr 语法中,你可以这样做:
df %>% mutate(X3 = X1 + X2)
也就是说,假设 X1 和 X2 是 df 中的两个独立列。
基础 R 解决方案将适用于单独的向量,即使不在单个 df 中也是如此。
rowSums
用于此类情况。如果 data.frame 超过 2 列,那么 df
应该在下面的解决方案中替换为 df[c("X1","X2")]
。
如果 OP 希望最后一行有 NA
那么解决方案可以是:
df$X3 <- ifelse(rowSums(is.na(df)) == ncol(df), NA, rowSums(df, na.rm = TRUE))
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA NA
如果最后一行(所有 NA
)的预期总和为 0
,则简单的 rowSums
将作为:
df$X3 <- rowSums(df, na.rm = TRUE)
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA 0
数据:
df <- read.table(text =
"X1 X2
3 5
6 9
3 3
0 6
NA 4
NA NA",
header = TRUE)
我想合并两列并将它们的内容加在一起,例如
X1 X2
3 5
6 9
3 3
0 6
NA 4
NA NA
创建
X3
8
15
6
6
4
NA
任何指示将不胜感激?
在基础 R 中你可以这样做:
X3 <- X1 + X2
但这将 return NA,而您只有一个 NA。如果你想忽略 NA,并在添加 NA 和 4 时让它成为 return 4,你可以这样做:
X3 <- sum(X1, X2, na.rm = TRUE)
在 dplyr 语法中,你可以这样做:
df %>% mutate(X3 = X1 + X2)
也就是说,假设 X1 和 X2 是 df 中的两个独立列。
基础 R 解决方案将适用于单独的向量,即使不在单个 df 中也是如此。
rowSums
用于此类情况。如果 data.frame 超过 2 列,那么 df
应该在下面的解决方案中替换为 df[c("X1","X2")]
。
如果 OP 希望最后一行有 NA
那么解决方案可以是:
df$X3 <- ifelse(rowSums(is.na(df)) == ncol(df), NA, rowSums(df, na.rm = TRUE))
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA NA
如果最后一行(所有 NA
)的预期总和为 0
,则简单的 rowSums
将作为:
df$X3 <- rowSums(df, na.rm = TRUE)
df
# X1 X2 X3
# 1 3 5 8
# 2 6 9 15
# 3 3 3 6
# 4 0 6 6
# 5 NA 4 4
# 6 NA NA 0
数据:
df <- read.table(text =
"X1 X2
3 5
6 9
3 3
0 6
NA 4
NA NA",
header = TRUE)