gpt4 book ai didi

r - 如何在列表中使用 mutate?

转载 作者:行者123 更新时间:2023-12-04 23:40:52 29 4
gpt4 key购买 nike

改变列表的正确方法是什么?在这种特定情况下,列表由 split 返回。

library(dplyr)
csv<-data.frame(participant_number=c(1,1,1,2,2),SelfEsteem=c(3,4,2,1,3))
csv<-csv%>%split(.,.$participant_number)%>%mutate(.,var(.$SelfEsteem))

错误:
Error in UseMethod("mutate_") : 
no applicable method for 'mutate_' applied to an object of class "list"

更新 回复评论 : 我打算计算 SelfEsteem的方差每个组(分组变量是 participant_number )。如果我尝试 group_by我没有得到预期的结果......为什么?
library(dplyr)

#Please note I changed the dataframe to make my point about variance differences more obvious
csv<-data.frame(participant_number=c(1,1,1,2,2),SelfEsteem=c(3,4,2,1,3))

csv<-csv%>%group_by(participant_number)%>%mutate(.,SE_variance=var(.$SelfEsteem))

#var(c(3,4,2)) #1
#var(c(1,3)) #2

预期的:
        participant_number SelfEsteem SE_variance
(dbl) (dbl) (dbl)
1 1 3 1
2 1 4 1
3 1 2 1
4 2 1 2
5 2 3 2

最佳答案

您对 group_by 的尝试失败,因为您覆盖了 mutate的搜索路径。 Mutate 使用非标准评估,因此它会首先在它的 data 的列中查找变量。争论。

当您使用管道 ( %>% ) 时,点 .指整个数据框,.$SelfEsteem指的是整个数据框中的整个 SelfEsteem 列。

您只需要稍微简化(不覆盖默认值)即可获得预期结果。

csv %>% 
group_by(participant_number) %>%
mutate(SE_variance = var(SelfEsteem))
# Source: local data frame [5 x 3]
# Groups: participant_number [2]
#
# participant_number SelfEsteem SE_variance
# (dbl) (dbl) (dbl)
# 1 1 3 1
# 2 1 4 1
# 3 1 2 1
# 4 2 1 2
# 5 2 3 2

关于r - 如何在列表中使用 mutate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975872/

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