首页 > 解决方案 > 数据框中的两个混合列

问题描述

我有一个带有两个字符向量的数据框:

data.frame(
           matPA = c("PA66", "SB3", "PA66GF", "PA66", "SB2"), 
           matSB = c("SB1", "PA66", "SB1", "SB2", "PA66GF")
)

我想在正确的列中有正确的字符,例如 PA66 & PA66GF 到 matPA 和 SB2 & 3 到 matSB:

data.frame(
           matPA = c("PA66", "PA66", "PA66GF", "PA66", "PA66GF"), 
           matSB = c("SB1", "SB3", "SB1", "SB2", "SB2")
)

非常感谢你。

标签: rdataframeif-statementmultiple-columns

解决方案



d <- data.frame(
           matPA = c("PA66", "SB3", "PA66GF", "PA66", "SB2"), 
           matSB = c("SB1", "PA66", "SB1", "SB2", "PA66GF")
)

library(dplyr)

d2 <- apply( d, 1, function(r) {
    r[ order( grepl("^SB",r)) ]
}) %>% t %>% as.data.frame %>% setNames( names(d) )

大概就是这样。


推荐阅读