gpt4 book ai didi

r - 将函数应用于 R 中的多个数据框列

转载 作者:行者123 更新时间:2023-12-04 07:47:55 27 4
gpt4 key购买 nike

所以我有一个函数,我想应用于我的数据框中的一系列列
我的数据框有 111 列,我想根据其 ID 号对每一列进行去平均。
我有名为 esgscore 的列的以下代码

demeaned_df <- df %>%
group_by(ID) %>%
mutate(avg_esgscore = mean(esgscore)) %>%
mutate(demeaned_esgscore = esgscore - avg_esgscore)
这正是我想要的,所以我很满意,但我基本上想将此函数应用于我的数据框 (df) 中的第 3:111 列,并将它们放入一个名为 demeaned_df 的新数据框中
任何帮助将不胜感激

最佳答案

这是一个想法。我们可以使用 across将该函数应用于多列。在这个例子中,我对来自 disp 的列应用了 demean 操作。至 carb .

library(dplyr)

mtcars2 <- mtcars %>%
group_by(cyl) %>%
mutate(across(disp:carb, .fns = function(x) x - mean(x)))
mtcars2
# # A tibble: 32 x 11
# # Groups: cyl [3]
# mpg cyl disp hp drat wt qsec vs am gear carb
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 21 6 -23.3 -12.3 0.314 -0.497 -1.52 -0.571 0.571 0.143 0.571
# 2 21 6 -23.3 -12.3 0.314 -0.242 -0.957 -0.571 0.571 0.143 0.571
# 3 22.8 4 2.86 10.4 -0.221 0.0343 -0.527 0.0909 0.273 -0.0909 -0.545
# 4 21.4 6 74.7 -12.3 -0.506 0.0979 1.46 0.429 -0.429 -0.857 -2.43
# 5 18.7 8 6.90 -34.2 -0.0793 -0.559 0.248 0 -0.143 -0.286 -1.5
# 6 18.1 6 41.7 -17.3 -0.826 0.343 2.24 0.429 -0.429 -0.857 -2.43
# 7 14.3 8 6.90 35.8 -0.0193 -0.429 -0.932 0 -0.143 -0.286 0.5
# 8 24.4 4 41.6 -20.6 -0.381 0.904 0.863 0.0909 -0.727 -0.0909 0.455
# 9 22.8 4 35.7 12.4 -0.151 0.864 3.76 0.0909 -0.727 -0.0909 0.455
# 10 19.2 6 -15.7 0.714 0.334 0.323 0.323 0.429 -0.429 0.143 0.571
# # ... with 22 more rows

关于r - 将函数应用于 R 中的多个数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67125484/

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