使用部分字符串创建新变量重新发布

问题描述

我希望我能对如何将我的数据转换为R中的长格式感兴趣。

我想从数据框中的变量名称中分离出条件,发色团和源检测器。下面我粘贴了一些示例(但是数据框中还有更多变量)。因此,我需要选择“愤怒”和“快乐”并将它们放入变量“条件”中,然后将发色团 Hbo HbR Hbt ,最后是源检测器对“ 1,1”,“ 1,2”(也许是在逗号前后搜索和提取文本,因为我有49种组合)。

示例变量名称:

AngryHRFHbO,1,1 AngryHRFHbR,1,1 AngryHRFHbT,1,1 AngryHRFHbO,2,1 AngryHRFHbR,2,1 AngryHRFHbT,2,1 HappyHRFHbO,4,1 HappyHRFHbR,4,1 HappyHRFHbT,4,O,1 2,2 HRFHbR,2,2 HappyHRFHbT,2,2

谢谢您的帮助!

祝一切顺利, 卡罗琳

解决方法

我做了与上述数据类似的数据

library(tidyverse)
library(stringr)
df <- data.frame(obs = 1,"AngryHRFHbO,1,1"  = 1,"AngryHRFHbR,1" = 0,"AngryHRFHbT,1" = 3,2,1" = 9,"HappyHRFHbT,4,1" = 4)
# obs AngryHRFHbO.1.1 AngryHRFHbR.1.1 AngryHRFHbT.1.1 AngryHRFHbO.2.1 AngryHRFHbR.2.1 HappyHRFHbT.4.1
# 1   1               1               0               3               9               0               4

这是解决问题的一种方法

df2 <- df %>% 
  pivot_longer(-obs,names_to = "Name",values_to = "Value") %>% 
  mutate(Name = str_replace_all(Name,regex("\\."),",")) %>%  #you can ignore this line if the variables have the comma
  mutate(Condition = str_extract(Name,regex("Angry|Happy")),Chromophore = str_extract(Name,regex("Hbo|HbR|Hbt",ignore_case = TRUE)),detector = str_extract(Name,regex("\\d[,]\\d$"))) %>% 
  select(-c(obs,Value))
# Name            Condition Chromophore detector
# <chr>           <chr>     <chr>       <chr>   
# 1 AngryHRFHbO,1 Angry     HbO         1,1     
# 2 AngryHRFHbR,1 Angry     HbR         1,1     
# 3 AngryHRFHbT,1 Angry     HbT         1,1     
# 4 AngryHRFHbO,1 Angry     HbO         2,1     
# 5 AngryHRFHbR,1 Angry     HbR         2,1     
# 6 HappyHRFHbT,1 Happy     HbT         4,1 
,

谢谢您的帮助!我能够用它得出我需要的结论。见下文:

df2 <- full_data %>% 
pivot_longer(-c("ID","time"),values_to = "Value") %>% 
mutate(Name = str_replace_all(Name,"_")) %>%  #you can ignore this line 
if the variables have the comma
mutate(Condition = str_extract(Name,regex("Angry|Happy|Fearful")),regex("HbO|HbR|HbT",Channel = str_extract_all(Name,regex("\\d+[_]\\d+$"))) %>% 
select(c("ID","time","Name","Condition","Chromophore","Channel","Value"))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...