r - 基础问题:如何使用 R 将列表向量转换为表格?
问题描述
我有一个非常基本的问题,我无法找到答案,因为我不是 100% 清楚到底如何问它。我发现似乎合适的教程都有点过于简化,并且缺少一些关键信息。
我有一个已处理数据的列表向量,我正在尝试将其转换为表格以进行下游分析,但我被卡住了。目前我有一个包含 4088 个数字数据点的值列表。“数据”的元数据有我的子类型信息。我以这种方式生成了我的列表:
vec <-vector("list",3)
vec[[1]] <- Values[which(colData(Data)$Type=="Type1")]
vec[[2]] <- Values[which(colData(Data)$Type=="Type2")]
vec[[3]] <- Values[which(colData(Data)$Type=="Type3")]
现在,[[1]] 仅具有我关心的类型 1 的值,类型 2 的 [[2]] 等。那么,我如何将其转换为数据帧或表以用于下游的东西,如组之间的 T 测试? 下面的读数告诉我我需要以某种方式定义我的数据并且我每组有不同数量的点是一个问题,但我在这里完全迷失了。
df <- as.data.frame(vec)
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 1461, 658, 1969
感谢您的任何帮助,或者只是一个教程的方向,这将帮助我自己回答这个问题!
解决方案
这实际上取决于您的下游步骤是什么,但是您可以生成data.frame
最大长度lengths(vec)
为 的行数(这将填充向量NA
- 确保之后如何处理 NA)。如何获得这样的例子data.frame
可以在@AndyBrown 的答案中找到
具体来说,要在组之间执行 t 检验,您不需要生成data.frame
. 您可以使用可以具有不同长度的列表元素的成对组合。下面是一个使用列表元素的所有成对组合vec
来执行 t 检验的示例:
lapply(combn(vec, 2, simplify=FALSE), function(x) t.test(x[[1]], x[[2]]))
推荐阅读
- angular - Http getter 函数不接受参数
- node.js - 如何有条件地在 docker 中运行 Sequelize seed data 命令,并与 package.json(或其他地方)中的变量组合?
- typeorm - 测试我的课程方法的问题
- unit-testing - PyCharm:单独工作的测试,在组中运行时找不到文件
- ocaml - 使用 Cmdliner 时,是否可以对记录中的参数进行分组?
- html - 如何在 CSS“过山车”动画中弯曲一条线?
- spring-boot - 使用 github 操作将开源 Spring Boot 应用程序部署到谷歌云
- bash - 在 bash 中解析 ac 文件(查找主括号内的内容)
- sql - 对 SQL Server 中不同的列进行不同的计数
- angular - 同步两个离子范围