创建一个新行,该行是所有列的平均值

时间:2020-08-16 09:25:46

标签: r

我想在数据框的底部添加一个新行,该行显示每列的平均值。例如

A B C D
1 2 3 4
2 3 4 5
3 4 5 6 
4 5 6 7

我想要的结果是:

A    B    C    D
1    2    3    4
2    3    NA   5
3    4    5    NA 
4    5    6    NA
10/4 14/4 14/3 9/2

我有很多列的值(NA)缺失,也有很多列的条目数量不同,并且我有900列。

可以这样做吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

听起来您的数据更像这样:

df <- structure(list(Date = c("2020-01-01", "2020-01-02", "2020-01-03", 
"2020-01-04"), A = 1:4, B = 2:5, C = 3:6, D = 4:7), class = "data.frame", 
row.names = c(NA, -4L))

df
#>         Date A B C D
#> 1 2020-01-01 1 2 3 4
#> 2 2020-01-02 2 3 4 5
#> 3 2020-01-03 3 4 5 6
#> 4 2020-01-04 4 5 6 7

在这种情况下,您可以做类似的事情

rbind(df, sapply(df, function(x) if(is.numeric(x)) mean(x, na.rm = TRUE) else ""))
#>         Date   A   B   C   D
#> 1 2020-01-01   1   2   3   4
#> 2 2020-01-02   2   3   4   5
#> 3 2020-01-03   3   4   5   6
#> 4 2020-01-04   4   5   6   7
#> 5            2.5 3.5 4.5 5.5

reprex package(v0.3.0)于2020-08-16创建

答案 1 :(得分:0)

您只能输入UpgradeCode个数字列:

mean
相关问题