r - 数据框中的两个混合列
问题描述
我有一个带有两个字符向量的数据框:
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")
)
非常感谢你。
解决方案
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) )
大概就是这样。
推荐阅读
- ios - 将描边颜色更改为清除颜色 CGContext
- python - 使用素数维度重塑数组时出错
- regex - 通过正则表达式从导入中获取 npm 包名称(不是相对路径)
- swift - 下载百分比 (SWIFT)
- bash - 什么是 ._.bash_profile 文件
- ios - 在 xcode 上使用 Sqlite 的指南?
- java - 使用'>>'将int向右移动后如何将最高有效位更改为1?
- visual-studio-code - 对于特定类型的扩展,结束文件没有空行
- jaxb - 如何解决 JAXB IllegalAnnotationException 错误
- selenium-webdriver - 在 Selenium 中运行并行 Testng 测试