r - 使用空列表启动数据框中的元素
问题描述
假设我确实有一个数据框:
x <- data.frame(TYPE=c("DEL", "DEL", "DUP", "TRA", "INV", "TRA"),
CHRA=c("chr1", "chr1", "chr1", "chr1", "chr2", "chr2"),
POSA=c(10, 15, 120, 340, 100, 220),
CHRB=c("chr1", "chr1", "chr1", "chr2", "chr2", "chr1"),
POSB=c(30, 100, 300, 20, 200, 320))
我如何在 x 中启动另外 2 列,其中这 2 列中的每个元素都将是一个列表(该列表可以稍后更新)。谢谢 !
我要不要,
for (i in 1:dim(x)[1]) { x$intersectA[i] <- list()}
for (i in 1:dim(x)[1]) { x$intersectB[i] <- list()}
什么都没有发生。
解决方案
您可以使用空列表rep()
来启动list()
特定长度的填充。
利用
x$intersectA <- rep(list(list()), nrow(x))
x$intersectB <- rep(list(list()), nrow(x))
得到两个用空列表填充的列表。
> x
TYPE CHRA POSA CHRB POSB intersectA intersectB
1 DEL chr1 10 chr1 30 NULL NULL
2 DEL chr1 15 chr1 100 NULL NULL
3 DUP chr1 120 chr1 300 NULL NULL
4 TRA chr1 340 chr2 20 NULL NULL
5 INV chr2 100 chr2 200 NULL NULL
6 TRA chr2 220 chr1 320 NULL NULL
> x$intersectA
[[1]]
list()
[[2]]
list()
[[3]]
list()
[[4]]
list()
[[5]]
list()
[[6]]
list()
推荐阅读
- swift - DateFormatter/ISO8601DateFormatter 无法从字符串中获取日期
- python - 为什么我的curve_fit 达到maxfev = 10000?
- python - Tensorflow 2.0 未使用 Heroku 在 pipenv 上安装
- gcc - 在没有 .SUNW_syminfo 的情况下在 Solaris 上构建共享库以导出
- wordpress - 我无法更改我的 wordpress 网站的主页
- jsp - 仅针对特定 URL 的 Tomcat 基本身份验证
- azure-devops - DotNetCLI@2 包似乎忽略了配置输入
- c# - AppDomain.CurrentDomain.SetThreadPrincipal 问题
- python-3.x - 如何解决缺少参数的问题
- symfony - Symfony4:资产文件夹在哪里?