【发布时间】:2020-12-29 15:26:59
【问题描述】:
我有一个看起来像这样的数据框:
SampleNo Lab1 Lab2 Lab3 lab4 lab5 lab6 lab7 lab8 lab9 lab10
1 59.84 60.59 60.39 60.29 60.19 60.32 60.24 60.3 60.43 NA
2 59.78 60.19 60.16 60.23 60.32 60.46 60.53 60.2 60.40 59.6
3 59.86 60.17 60.22 60.28 60.18 60.42 60.21 60.0 60.44 NA
4 59.85 60.42 60.28 60.31 60.19 60.41 60.54 60.2 60.48 59.7
5 59.97 60.79 60.30 60.26 60.40 60.47 60.52 60.0 60.46 59.7
6 60.03 60.26 60.36 60.21 60.32 60.46 60.50 60.1 60.29 60.0
我想对数据框中每一列的平方求和,同时忽略 NA 值并分配给一个新向量。我可以让代码为 1 列工作,但我想使用 mapply 函数或类似的函数来同时获取所有列的值并分配给一个新向量。
我有以下单列代码
myvector <- sum(na.omit(df[,2] - mean(df[,2))^2)) 这适用于 1 列
我已经为整个数据框尝试了以下方法
myvector <- (mapply(na.omit(sum(df[,2:11] - mean(df[,2:11]))^2)))
我收到错误消息“match.fun(FUN) 中的错误:c(""na.omit(sum(df[,2:11] - mean(df[, is not a function, character or symbol", 2:11]))^2 不是函数字符或符号
和
myvector <- (mapply(sum(na.omit(df[,2:11] - mean(df[,2:11]))^2)))
但得到这个错误:
sum(na.omit, df[, 2:11] - mean(df[, : 参数的无效“类型”(闭包) 另外:警告信息: 在 mean.default(df[, 2:11]) 中: 参数不是数字或逻辑:返回 NA
我的想法是 na.omit 在错误的地方,但我不知道它应该去哪里。
【问题讨论】: