假设M具有以下结构:
> dput(head(M))
structure(list(SV = structure(c(38L, 21L, 24L, 20L, 54L, 45L), .Label = c("X1 X2 X3",
"X1 X2 X3 X10 X6 X9", "X1 X2 X3 X10 X8 X9", "X1 X2 X3 X10 X9 X8",
"X1 X2 X3 X4", "X1 X2 X3 X4 X9 X7", "X1 X2 X3 X5", "X1 X2 X3 X5 X10",
"X1 X2 X3 X5 X6 X4", "X1 X2 X3 X5 X9", "X1 X2 X3 X6", "X1 X2 X3 X6 X7",
"X1 X2 X3 X7", "X1 X2 X3 X7 X8 X10", "X1 X2 X3 X8", "X1 X2 X3 X8 X4",
"X1 X2 X3 X8 X9 X10 X7", "X1 X2 X3 X9", "X1 X2 X3 X9 X10", "X1 X2 X3 X9 X5",
"X2 X1 X3", "X2 X1 X3 X10", "X2 X1 X3 X10 X5", "X2 X1 X3 X10 X9",
"X2 X1 X3 X4", "X2 X1 X3 X4 X10", "X2 X1 X3 X4 X6", "X2 X1 X3 X4 X8",
"X2 X1 X3 X5 X10 X4", "X2 X1 X3 X5 X4", "X2 X1 X3 X5 X7", "X2 X1 X3 X6",
"X2 X1 X3 X6 X5 X7", "X2 X1 X3 X6 X8", "X2 X1 X3 X6 X8 X9", "X2 X1 X3 X7",
"X2 X1 X3 X7 X10", "X2 X1 X3 X7 X4", "X2 X1 X3 X7 X5", "X2 X1 X3 X7 X9 X5",
"X2 X1 X3 X8", "X2 X1 X3 X8 X10 X4", "X2 X1 X3 X8 X10 X5 X9",
"X2 X1 X3 X8 X6", "X2 X1 X3 X9", "X2 X1 X3 X9 X5", "X2 X1 X3 X9 X5 X4",
"X2 X1 X3 X9 X6 X7 X10", "X2 X1 X3 X9 X7", "X2 X3 X1 X5 X6",
"X2 X3 X1 X8", "X3 X1 X2", "X3 X2 X1", "X3 X2 X1 X4"), class = "factor")), row.names = c(NA,
6L), class = "data.frame")可以看出,在某些行中,它们不是连续的。我需要这个顺序中的连续顺序X1 X2 X3 X4 X5 X6 X7的外观。如何重新排列M的行
发布于 2020-02-11 14:57:55
你需要分开,去掉号码和顺序。
M$SV <- sapply(M$SV, function(i){i1 <- strsplit(as.character(i), ' ')[[1]];
i2 <- i1[order(as.numeric(gsub('\\D+', '', i1)))];
paste(i2, collapse = ' ')})这给了,
SV 1 X1 X2 X3 X4 X7 2 X1 X2 X3 3 X1 X2 X3 X9 X10 4 X1 X2 X3 X5 X9 5 X1 X2 X3 X4 6 X1 X2 X3 X9
发布于 2020-02-11 14:59:56
M$SV <- as.character(M$SV)
M$SV <- sapply(
strsplit(M$SV, " "),
function(x) {
y <- x[order(as.integer(sub("X", "", x, fixed = TRUE)))]
paste(y, collapse = " ")
}
)
M
# SV
# 1 X1 X2 X3 X4 X7
# 2 X1 X2 X3
# 3 X1 X2 X3 X9 X10
# 4 X1 X2 X3 X5 X9
# 5 X1 X2 X3 X4
# 6 X1 X2 X3 X9发布于 2020-02-11 14:28:57
尝试使用转发器并应用:
M <- data.frame(a=c("z1","z1"),
b=c("z5","z4"),
c=c("z2","z3"),
d=c("z6","z2"))
>t(apply(M, 1, sort))
[,1] [,2] [,3] [,4]
[1,] "z1" "z2" "z5" "z6"
[2,] "z1" "z2" "z3" "z4"https://stackoverflow.com/questions/60170773
复制相似问题