【发布时间】:2021-09-05 10:46:39
【问题描述】:
我想计算以下数据框的平均值。由于NA's,,我收到以下消息:警告消息:在 mean.default(df_new) 中:参数不是数字或逻辑:返回 NA。有没有办法绕过这个错误?
数据结构:
愿望输出规则=AVERAGE(B2:P7)
样本数据:
structure(list(X1 = c(1, 2, 3, 4, 5, 6), `10` = c(10, 10, 10,
10, NA, NA), `20` = c(20, 20, 20, NA, NA, NA), `30` = c(30, 30,
30, 30, NA, NA), `40` = c(40, 40, 40, 40, NA, NA), `50` = c(50,
50, 50, 50, 50, 50), `60` = c(60, 60, NA, NA, NA, NA), `70` = c(70,
70, NA, NA, NA, NA), `80` = c(80, 80, NA, NA, NA, NA), `90` = c(90,
90, NA, NA, NA, NA), `100` = c(NA, NA, NA, NA, NA, NA), `110` = c(110,
110, 110, NA, NA, NA), `120` = c(120, 120, NA, NA, NA, NA), `130` = c(NA,
NA, NA, NA, NA, NA), `140` = c(NA, NA, NA, NA, NA, NA), `150` = c(150,
NA, NA, NA, NA, NA), X17 = c(NA, NA, NA, NA, "average", "57.14285714"
)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA,
-6L), spec = structure(list(cols = list(X1 = structure(list(), class = c("collector_double",
"collector")), `10` = structure(list(), class = c("collector_double",
"collector")), `20` = structure(list(), class = c("collector_double",
"collector")), `30` = structure(list(), class = c("collector_double",
"collector")), `40` = structure(list(), class = c("collector_double",
"collector")), `50` = structure(list(), class = c("collector_double",
"collector")), `60` = structure(list(), class = c("collector_double",
"collector")), `70` = structure(list(), class = c("collector_double",
"collector")), `80` = structure(list(), class = c("collector_double",
"collector")), `90` = structure(list(), class = c("collector_double",
"collector")), `100` = structure(list(), class = c("collector_logical",
"collector")), `110` = structure(list(), class = c("collector_double",
"collector")), `120` = structure(list(), class = c("collector_double",
"collector")), `130` = structure(list(), class = c("collector_logical",
"collector")), `140` = structure(list(), class = c("collector_logical",
"collector")), `150` = structure(list(), class = c("collector_double",
"collector")), X17 = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"))
【问题讨论】:
-
mean()函数有一个参数可以忽略 NA——即mean(x, na.rm=TRUE)。运行?mean查找参数选项。 -
你能告诉我们你是如何编写你的平均函数的吗?
-
查看@akrun 的回答。您的
df_new中还有一些不是数字的列(即c(`100`,`130`,`140`,`150`,X17))。您可能需要先删除它们,否则您的平均值可能没有意义。