R语言:将单个变量多类别合并为因子并生成目标子集
重复测量数据集的子集构建与变量衍生
R语言实现(基于tidyverse包)
假设你的数据集名为df,可以用dplyr包的函数完成需求:
library(dplyr) # 过滤+生成新变量 df_processed <- df %>% filter(condition != "A") %>% mutate(new_factor = case_when( condition %in% c("B", "C") ~ "low", condition %in% c("D", "E") ~ "high" ))
代码说明
filter(condition != "A"):直接剔除所有condition取值为"A"的观测行mutate()配合case_when():按规则生成新分类变量new_factor,匹配B/C时赋值"low",匹配D/E时赋值"high"
Python语言实现(基于pandas包)
假设你的数据集已存入pandas.DataFrame对象df,代码如下:
import pandas as pd import numpy as np # 先过滤掉condition为"A"的行 df_processed = df[df['condition'] != 'A'].copy() # 生成new_factor变量 df_processed['new_factor'] = np.where( df_processed['condition'].isin(['B', 'C']), 'low', 'high' )
代码说明
df[df['condition'] != 'A'].copy():过滤目标行并创建副本,避免后续赋值时出现链式赋值警告np.where():通过条件判断快速赋值,满足B/C条件的设为"low",其余符合要求的(D/E)设为"high"
处理后结果示例
participant_nr condition value new_factor 0 01 B 13 low 1 01 C 20 low 3 01 D 11 high 4 01 E 17 high 5 02 C 18 low 7 02 B 12 low 8 02 D 11 high 9 02 E 15 high
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

