我想在数据框的底部添加一个新行,该行显示每列的平均值。例如
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列。
可以这样做吗?
非常感谢
答案 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