我有样本ID为(B1T1、B2T1…(的数据,我想为所有B1和B2样本分配"Recovery",并为所有B3和B4样本分配"Acidic",但由于名称与治疗(T1、T2等(相关,我需要一种仅根据样本ID的一部分分配新变量的方法。
这是tidyr:中separate
的一个很好的用例
library(tidyr)
ID <- c("B1T1", "B1T2", "B2T1", "B3T1", "B4T1", "B4T2")
val <- rnorm(6)
df <- data.frame(ID = ID, val = val)
df
#> ID val
#> 1 B1T1 0.2990410
#> 2 B1T2 -0.1363163
#> 3 B2T1 -0.5500596
#> 4 B3T1 0.7734307
#> 5 B4T1 -0.7522459
#> 6 B4T2 -0.5597933
df %>%
separate(ID, sep = 2, into = c("Group", "Treatment"))
#> Group Treatment val
#> 1 B1 T1 0.2990410
#> 2 B1 T2 -0.1363163
#> 3 B2 T1 -0.5500596
#> 4 B3 T1 0.7734307
#> 5 B4 T1 -0.7522459
#> 6 B4 T2 -0.5597933
由reprex包(v0.3.0(于2020-04-07创建
从那里,你可以分别重新标记你的"B"组和治疗。