Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的行总和(带NA和s)_R_Sum_Summarize - Fatal编程技术网

R中的行总和(带NA和s)

R中的行总和(带NA和s),r,sum,summarize,R,Sum,Summarize,我有一个data.frame“data”和列“var1”。。。“var3”。现在,我想从三个var列中计算一个新列“sum”。不幸的是,在每一行中,三个变量中只有一个具有值: var1 var2 var3 sum NA NA 300 300 20 NA NA 20 10 NA NA 10 为了计算求和列,我必须先用0替换NA,还是有更优雅的方法?谢谢大家! 我们可以使用行和 df1$sum <- rowSums(df1[gre

我有一个data.frame“data”和列“var1”。。。“var3”。现在,我想从三个var列中计算一个新列“sum”。不幸的是,在每一行中,三个变量中只有一个具有值:

var1  var2  var3  sum
NA    NA    300   300
20    NA    NA     20
10    NA    NA     10

为了计算求和列,我必须先用0替换NA,还是有更优雅的方法?谢谢大家!

我们可以使用
行和

df1$sum <- rowSums(df1[grep("^var\\d+", names(df1))], na.rm = TRUE)

我们可以使用
rowSums

df1$sum <- rowSums(df1[grep("^var\\d+", names(df1))], na.rm = TRUE)

使用
data.table
,您还可以尝试:

df <- data.frame(var1 = c(NA, 20, 10),
                 var2 = c(NA, NA, NA),
                 var3 = c(300, NA, NA))
library(data.table)
dt <- as.data.table(df)
dt[, sum := rowSums(.SD, na.rm = TRUE), .SDcols = c("var1", "var2", "var3")]

df使用
data.table
,您还可以尝试:

df <- data.frame(var1 = c(NA, 20, 10),
                 var2 = c(NA, NA, NA),
                 var3 = c(300, NA, NA))
library(data.table)
dt <- as.data.table(df)
dt[, sum := rowSums(.SD, na.rm = TRUE), .SDcols = c("var1", "var2", "var3")]

df谢谢!这就是我要找的!谢谢这就是我要找的!