gpt4 book ai didi

r - 如何遍历列名向量,通过赋值回到列和函数引用循环索引来改变每一列

转载 作者:行者123 更新时间:2023-12-05 02:16:34 24 4
gpt4 key购买 nike

如果您能原谅我对循环的兴趣,我想知道如何遍历变量名向量(在我的用例中必须是字符串)并改变原始列。在这个玩具示例中,我想计算列 i 加上 z 的平均值。

df_have <- data.frame(x=c(1, 1, 2, 3, 3),
y=c(2, 2, 3, 4, 4),
z=c(0, 1, 2, 3, 4))

for (i in c("x", "y")) {
df_test <-
df_have %>%
mutate(!!i := mean(i)+z)
}

df_want <- data.frame(x=c(2, 3, 4, 5, 6), # mean 2 + z
y=c(3, 4, 5, 6, 7), # mean 3 + z
z=c(0, 1, 2, 3, 4))

最佳答案

好吧,如果你想做一个循环,那么

df_test <- df_have
for (i in c("x", "y")) {
df_test <-
df_test %>%
mutate(!!i := mean((!!as.name(i)))+z)
}

请注意,您需要将这些字符串转换为符号,以便在表达式中用于 mutate。在这种情况下,一个简单的技巧是

df_have %>% mutate_at(c("x","y"), funs(mean(.)+z))

关于r - 如何遍历列名向量,通过赋值回到列和函数引用循环索引来改变每一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581405/

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