我想根据不同列的字符串的第三个字母在R中创建一个新列。
我正在通过最近收集的数据进行工作,而不是要求参与者在性别上打勾,而是将其包括在匿名的主题ID中。现在,我想根据他们代码中的第三个字母(m / f)创建一个单独的参与者性别列。我环顾四周,但找不到解决方案。我设法发现我可以使用'separate(remove = FALSE)',并且如果可能的话,我想使用它,因为我习惯使用tidyverse。
# Example code
library(tidyverse)
a <- data_frame(SubjID = c("hgm9899", "lkf98988", "lkfm09078", "ujm987987"))
如果参与者的第三个字母是m,则我想在标题中添加一列,标题为M,如果是f,则添加F。
谢谢
答案 0 :(得分:0)
一种可能是:
a %>%
mutate(participant_sex = toupper(substr(SubjID, 3, 3)))
SubjID participant_sex
<chr> <chr>
1 hgm9899 M
2 lkf98988 F
3 lkfm09078 F
4 ujm987987 M