r - 将字符操作应用于单行代码中的一个列表
问题描述
我想生成列表 ["chr1", "chr2", ... "chr22"]。我想出的解决方案是抽象出将整数转换为染色体名称然后对其进行重叠的操作:
toChromName <- function(x) {
paste("chr", toString(x), sep = '')
}
autosomes = lapply(1:22, toChromName)
但我想知道是否有一种方法可以在一行中执行此操作,类似于在 Python 中使用 lambda。
解决方案
toString
没有做预期的事情。paste
是矢量化的,所以我们可以直接vector
对数字执行此操作,而不是循环每个元素并应用函数
paste0("chr", 1:22)
IE。
toChromName <- function(vec) {
paste0("chr", vec)
}
toChromName(1:22)
#[1] "chr1" "chr2" "chr3" "chr4" "chr5" "chr6" "chr7" "chr8" "chr9" "chr10" "chr11" "chr12" "chr13" "chr14" "chr15" "chr16" "chr17" "chr18"
#[19] "chr19" "chr20" "chr21" "chr22"
如果在 a 中需要list
,使用as.list
转换为 alist
as.list(toChromName(1:22))
推荐阅读
- javascript - 如何停止 React.useEffect 的副作用?
- reactjs - 如何在 react-router 中使用链接
- python - 如何找到列表中的最小整数?
- flutter - Chrome 扩展程序是否可以在 Flutter Web 应用程序的运行时添加/删除小部件?
- ansible - Ansible Tower 未找到集合
- c# - EF Core 3.1 组合连接和分组时意外 SQL 生成
- wordpress - 在商品档案中向用户显示每个购买商品的数量
- amazon-web-services - AWS DynamoDB 中 PointInTimeRecoveryEnabled 的默认设置是什么?
- git - 如何获取对本地编辑器的拉取请求更改?
- python - 如何用数字列表替换满足条件的数组的某些值