如何从数据框中删除 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
我有一个数据框:
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