首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中的相同列中重新排列相同类型的数据值

在R中的相同列中重新排列相同类型的数据值
EN

Stack Overflow用户
提问于 2019-09-18 03:24:09
回答 1查看 37关注 0票数 3

我的数据如下:

代码语言:javascript
复制
df <- structure(list(X1 = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L), .Label = c("16S", "M"), class = "factor"), X2 = structure(c(1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L), .Label = c("M", "T1", "T2", 
"T3", "T4"), class = "factor"), X3 = structure(c(8L, 8L, 8L, 
8L, 8L, 1L, 1L, 1L, 1L), .Label = c("R1", "R2", "R3", "R4", "T1", 
"T2", "T3", "T4"), class = "factor"), X4 = structure(c(4L, 4L, 
4L, 4L, 4L, 5L, 5L, 6L, 6L), .Label = c("R1", "R2", "R3", "R4", 
"S1", "S2", "S3"), class = "factor"), X5 = structure(c(2L, 3L, 
3L, 4L, 4L, 1L, 1L, 1L, 1L), .Label = c("16S", "S1", "S2", "S3"
), class = "factor")), row.names = 92:100, class = "data.frame")

我希望将所有以M开头的值放在一列中,将T放在另一列中;将以S开头的值放在另一列中,依此类推(保持行号不变)。我如何在R中做到这一点?

预期结果:

代码语言:javascript
复制
X1 X2 X3 X4  X5
92  16S  M T4 R4  S1
93  16S  M T4 R4  S2
94  16S  M T4 R4  S2
95  16S  M T4 R4  S3
96  16S  M T4 R4  S3
97  16S  M T1 R1  S1 
98  16S  M T1 R1  S1 
99  16S  M T1 R1  S2 
100 16S  M T1 R1  S2 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 03:28:06

选项将是按行排序的sort

代码语言:javascript
复制
df[] <- t(apply(df, 1, sort))
df
#     X1 X2 X3 X4 X5
#92  16S  M R4 S1 T4
#93  16S  M R4 S2 T4
#94  16S  M R4 S2 T4
#95  16S  M R4 S3 T4
#96  16S  M R4 S3 T4
#97  16S  M R1 S1 T1
#98  16S  M R1 S1 T1
#99  16S  M R1 S2 T1
#100 16S  M R1 S2 T1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57980806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档