如何从数据框中删除 NA 以便在数据框上使用 sapply

How do I remove NA from a data frame with the intention of using sapply on the data frame

我有一个数据框:

            colA           colB
1           15.3           1.76
2           10.8           1.34
3            8.1           1.27
4           19.5           1.47
5            7.2           1.27
6            5.3           1.49
7            9.3           1.31
8           11.1           1.09
9            7.5           1.18
10          12.2           1.22
11           6.7           1.25
12           5.2           1.19
13          19.0           1.95
14          15.1           1.28
15           6.7           1.52
16           8.6             NA
17           4.2           1.12
18          10.3           1.37
19          12.5           1.19
20          16.1           1.05
21          13.3           1.32
22           4.9           1.03
23           8.8           1.12
24           9.5           1.70

我如何能够 remove/change 所有 NA 的值,以便当我使用 sapply(即 sapply(x, mean))时,我取平均值在 colA 的情况下是 24 行,在 colB 的情况下是 23 列?

我知道数据框必须具有相同的行数,所以使用 na.omit() 之类的东西是行不通的,因为它会删除,在这种情况下,第 16 行;当我计算 colA 的平均值时,我会丢失一行数据。

谢谢!

您应该能够通过 na.rm = TRUE 并获得 平均值

示例:

df <- data.frame(A = 1:3, B = c(NA, 1, 2))
apply(df, 2, mean, na.rm = TRUE)

#   A   B 
# 2.0 1.5