微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R中的正则表达式列名和分组?

如何解决R中的正则表达式列名和分组?

我有这个数据框:

id <- c(0,1,2,3,4)
groupA_sample1_values <- c(10,11,12,13,14)
groupA_sample2_values <- c(20,21,22,23,24)
groupA_sample3_values <- c(30,31,32,33,34)
groupB_sample1_values <- c(40,41,42,43,44)
groupB_sample2_values <- c(50,51,52,53,54)
groupB_sample3_values <- c(60,61,62,63,64)

df <- data.frame(id,groupA_sample1_values,groupA_sample2_values,groupA_sample3_values,groupB_sample1_values,groupB_sample2_values,groupB_sample3_values)

df

我正在尝试获取包含这些列的另一个表: id、组、样本、值。 我相信我必须使用正则表达式提取名称 groupA/groupB,对于样本编号也是如此,然后将其融合为一个新的数据框,但我不确定如何处理它。 有什么帮助吗?

解决方法

试试

library( tidyverse )
df %>%
  pivot_longer( -id,names_to = c("group","sample" ),names_pattern = "group(.)_sample(.)_values",values_to = "value" )

# # A tibble: 30 x 4
#      id group sample value
#   <dbl> <chr> <chr>  <dbl>
# 1     0 A     1         10
# 2     0 A     2         20
# 3     0 A     3         30
# 4     0 B     1         40
# 5     0 B     2         50
# 6     0 B     3         60
# 7     1 A     1         11
# 8     1 A     2         21
# 9     1 A     3         31
#10     1 B     1         41

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。