gpt4 book ai didi

r - R如何根据现有数据创建列/功能

转载 作者:行者123 更新时间:2023-12-04 10:17:07 29 4
gpt4 key购买 nike

我有一个数据框df:

userID Score  Task_Alpha Task_Beta Task_Charlie Task_Delta 
3108 -8.00 Easy Easy Easy Easy
3207 3.00 Hard Easy Match Match
3350 5.78 Hard Easy Hard Hard
3961 10.00 Easy NA Hard Hard
4021 10.00 Easy Easy NA Hard


1. userID is factor variable
2. Score is numeric
3. All the 'Task_' features are factor variables with possible values 'Hard', 'Easy', 'Match' or NA

我想为每个 userID创建新列,其中包含 Task_功能的每种可能状态的出现次数。对于上面的玩具示例,所需的输出将是在 df的末尾追加的三个新列,如下所示:
userID Hard Match Easy
3108 0 0 4
3207 1 2 1
3350 3 0 1
3961 2 0 1
4021 1 0 2

更新:
该问题不是重复的问题,原始问题的相关部分已移至:
R How to counting the factors in ordered sequence

最佳答案

您可以将数据帧dfmap**apply函数中的每个值进行比较,计算所得 bool 矩阵的行和,然后将输出与原始数据帧组合:

library(dplyr)
library(purrr)

facs <- c("Easy", "Match", "Hard")

bind_cols(df, set_names(map_dfc(facs, ~ rowSums(df == ., na.rm = T)), facs))

#### OUTPUT ####

userID Score Task_Alpha Task_Beta Task_Charlie Task_Delta Easy Match Hard
1 3108 -8.00 Easy Easy Easy Easy 4 0 0
2 3207 3.00 Hard Easy Match Match 1 2 1
3 3350 5.78 Hard Easy Hard Hard 1 0 3
4 3961 10.00 Easy <NA> Hard Hard 1 0 2
5 4021 10.00 Easy Easy <NA> Hard 2 0 1

关于r - R如何根据现有数据创建列/功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58745203/

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