r - 在一行中一个一个地转换向量中的变量
问题描述
此代码将核苷酸向量转换为数字从 1 到 4 的编码版本。但是,我想要更优雅的东西,可能在一行中。这可能吗?
vector2 <- c("c","a","g","g","c","g","g","g","a","t","t","t","c","t","c","t","t","g","t","t","g","a","c","a","g", "a","a","t","c","c")
vector2[vector2=="a"]<-1
vector2[vector2=="c"]<-2
vector2[vector2=="g"]<-3
vector2[vector2=="t"]<-4
as.numeric(vector2)
谢谢
解决方案
这是基础 R 中的解决方案:
sapply(vector2, switch, a = 1, c = 2, g = 3, t = 4)
应该存在更有效的东西,但它是优雅的并且在一条线上。
推荐阅读
- azure - Ansible 部署 Azure Function
- javascript - Javascript Canvas 两个 beginPath() lineTo() 正在连接
- swift - 快速更新语言环境
- gretl - 如何访问 gretl 中的行标签?
- jekyll - 如何访问 _config.yml 中定义的集合字段?
- r - R:将两个csv文件与火花结合起来
- vuejs2 - 在子目录中设置 VueJS
- ios - 在 Swift 5 (Xcode 10.1) 中结合 LongPress 和 Swipe UIGesture
- sql - JavaFX TableView:线程“JavaFX 应用程序线程”中的异常 java.lang.IndexOutOfBoundsException
- ubuntu - echo privatekey 使密钥无效