如果行的所有值小于该行的标准差,我想将它们更改为零。
set.seed(007)
X <- data.frame(matrix(sample(c(5:50), 100, replace=TRUE), ncol=10))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 37 10 43 45 11 17 39 13 13 44
2 10 24 32 16 7 50 41 47 9 39
3 23 49 46 35 16 30 22 10 11 46
4 41 46 19 28 47 39 27 40 49 13
5 29 23 49 10 50 17 42 43 7 31
6 31 26 11 36 35 43 …Run Code Online (Sandbox Code Playgroud) 说我有以下数据:
colA <- c("SampA", "SampB", "SampC")
colB <- c(21, 20, 30)
colC <- c(15, 14, 12)
colD <- c(10, 22, 18)
df <- data.frame(colA, colB, colC, colD)
df
# colA colB colC colD
# 1 SampA 21 15 10
# 2 SampB 20 14 22
# 3 SampC 30 12 18
Run Code Online (Sandbox Code Playgroud)
我想获取列BD中值的行均值和标准差。
我可以按以下方式计算rowMeans:
library(dplyr)
df %>% select(., matches("colB|colC|colD")) %>% mutate(rmeans = rowMeans(.))
# colB colC colD rmeans
# 1 21 15 10 15.33333
# 2 20 14 22 18.66667
# …Run Code Online (Sandbox Code Playgroud) 我试图计算数据框中某些列的平均值和标准差,并将这些值返回到数据框中的新列.我可以让这个工作的意思是:
library(dplyr)
mtcars = mutate(mtcars, mean=(hp+drat+wt)/3)
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试对标准偏差做同样的事情时,我有一个问题,因为我不能像我所做的那样对方程进行硬编码非常容易.所以,我尝试使用一个函数,如下所示:
mtcars = mutate(mtcars, mean=(hp+drat+wt)/3, stdev = sd(hp,drat,wt))
Run Code Online (Sandbox Code Playgroud)
导致错误"sd中的错误(hp,drat,wt):未使用的参数(wt)".我该如何纠正我的语法?谢谢.