gpt4 book ai didi

r - 从每个元素 dplyr 中减去平均值

转载 作者:行者123 更新时间:2023-12-01 19:15:28 25 4
gpt4 key购买 nike

我想使用 dplyr 贬低我的所有专栏。我尝试使用“do()”命令但失败了。

我基本上想使用更简单的 dplyr 命令复制以下内容:

tickers <- c(rep(1,10),rep(2,10))
df <- data.frame(cbind(tickers,rep(1:20),rep(2:21)))
colnames(df) <- c("tickers","col1","col2")
df %>% group_by(tickers)
apply(df[,2:3],2,function(x) x - mean(x))

我确信使用 dplyr 可以做得更好。

谢谢!

最佳答案

如果我们使用 dplyr,我们可以使用 mutate_each 来完成此操作,并使用 ?select 中提到的任何方法来匹配列。在这里,我使用 matches ,它可以将正则表达式作为模式。

library(dplyr)
df %>%
mutate_each(funs(.-mean(.)), matches('^col')) %>%
select(-tickers)

但这也可以使用base R来完成:

df[2:3]-colMeans(df[2:3])[col(df[2:3])]

colMeans 输出是一个向量,可以进行复制以使长度相同。

关于r - 从每个元素 dplyr 中减去平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com