如何根据 R 中的特定样本名称字符对列中的数据进行排序?
How to sort a data in a column based on specific sample name characters in R?
我有一个数据框(在R中)需要根据样本名称的部分进行整理以进行分析。例如,每个样本都以这种格式编码在标题为“样本”的列中:
1.4.a.2021
1是星期
4是设备号
a是一周中的采样周期
2021 年。
我想按“4”排序(数字范围为 1-12)。我可以按字符串中的特定字符排序吗?如果是这样的话?
听起来你的数据是这样的:
set.seed(1)
df <- data.frame(Sample = paste0("1.", sample(12), ".",sample(letters, 12), "2021"),
Data = runif(12))
df
#> Sample Data
#> 1 1.9.u2021 0.3823880
#> 2 1.4.j2021 0.8696908
#> 3 1.7.v2021 0.3403490
#> 4 1.1.n2021 0.4820801
#> 5 1.2.y2021 0.5995658
#> 6 1.5.g2021 0.4935413
#> 7 1.3.i2021 0.1862176
#> 8 1.8.o2021 0.8273733
#> 9 1.6.e2021 0.6684667
#> 10 1.11.t2021 0.7942399
#> 11 1.12.q2021 0.1079436
#> 12 1.10.w2021 0.7237109
要对其进行排序,我们可以找到字符串的数字部分,将其转换为数字并按其对数据框进行排序:
df[order(as.numeric(gsub("^.*\.(\d+)\..*$", "\1", df$Sample))),]
#> Sample Data
#> 4 1.1.n2021 0.4820801
#> 5 1.2.y2021 0.5995658
#> 7 1.3.i2021 0.1862176
#> 2 1.4.j2021 0.8696908
#> 6 1.5.g2021 0.4935413
#> 9 1.6.e2021 0.6684667
#> 3 1.7.v2021 0.3403490
#> 8 1.8.o2021 0.8273733
#> 1 1.9.u2021 0.3823880
#> 12 1.10.w2021 0.7237109
#> 10 1.11.t2021 0.7942399
#> 11 1.12.q2021 0.1079436
由 reprex package (v2.0.1)
于 2022 年 3 月 20 日创建
我有一个数据框(在R中)需要根据样本名称的部分进行整理以进行分析。例如,每个样本都以这种格式编码在标题为“样本”的列中: 1.4.a.2021 1是星期 4是设备号 a是一周中的采样周期 2021 年。 我想按“4”排序(数字范围为 1-12)。我可以按字符串中的特定字符排序吗?如果是这样的话?
听起来你的数据是这样的:
set.seed(1)
df <- data.frame(Sample = paste0("1.", sample(12), ".",sample(letters, 12), "2021"),
Data = runif(12))
df
#> Sample Data
#> 1 1.9.u2021 0.3823880
#> 2 1.4.j2021 0.8696908
#> 3 1.7.v2021 0.3403490
#> 4 1.1.n2021 0.4820801
#> 5 1.2.y2021 0.5995658
#> 6 1.5.g2021 0.4935413
#> 7 1.3.i2021 0.1862176
#> 8 1.8.o2021 0.8273733
#> 9 1.6.e2021 0.6684667
#> 10 1.11.t2021 0.7942399
#> 11 1.12.q2021 0.1079436
#> 12 1.10.w2021 0.7237109
要对其进行排序,我们可以找到字符串的数字部分,将其转换为数字并按其对数据框进行排序:
df[order(as.numeric(gsub("^.*\.(\d+)\..*$", "\1", df$Sample))),]
#> Sample Data
#> 4 1.1.n2021 0.4820801
#> 5 1.2.y2021 0.5995658
#> 7 1.3.i2021 0.1862176
#> 2 1.4.j2021 0.8696908
#> 6 1.5.g2021 0.4935413
#> 9 1.6.e2021 0.6684667
#> 3 1.7.v2021 0.3403490
#> 8 1.8.o2021 0.8273733
#> 1 1.9.u2021 0.3823880
#> 12 1.10.w2021 0.7237109
#> 10 1.11.t2021 0.7942399
#> 11 1.12.q2021 0.1079436
由 reprex package (v2.0.1)
于 2022 年 3 月 20 日创建