我有一个 Dataframe ,看起来与此类似
gene_id gene_short_name S1-Case S2-Case S3-Case S4-Control S5-Control S6-Control
EN0001 TFG 0.003 0.001 0.002 0.001 0.002 0.003
字符串
我想要
gene_id gene_short_name Case Control
EN0001 TFG 0.003 0.001
EN0001 TFG 0.001 0.002
EN0001 TFG 0.002 0.003
型
我试过的代码是这样的
df_longer <- pivot_longer(df, cols = -c(gene_id, gene_short_name), names_to = c("sample", ".value"),
names_sep = "-", names_repair = "check_unique" )
型
但这给了我
gene_id gene_short_name Sample Case Control
EN0001 TFG S1 0.003 NA
EN0001 TFG S2 0.001 NA
EN0001 TFG S3 0.002 NA
EN0001 TFG S4 NA 0.001
EN0001 TFG S5 NA 0.002
EN0001 TFG S6 NA 0.003
型
有没有办法在pivot_longer中删除这些数据,或者我必须在使用pivot longer之前重新排列数据?谢谢你
2条答案
按热度按时间mwg9r5ms1#
由于要丢弃前面的
S[0-9]-
部分,因此我们使用names_pattern=
并丢弃前面的部分。字符串
S[1-6]
,这在这里可以工作,并且可能足以在一般情况下工作。我保留了辅助变量rn1
和rn2
主要是为了显示它们包含的内容,它们可以在第二个pivot
之后安全地删除:型
数据类型
型
6bc51xsx2#
不是有效的代码,而是一种替代方法
字符串
创建于2023-07-15带有reprex v2.0.2
型