r - 将数据框列转换为存储在列表中的向量
问题描述
我有由许多列/变量和三行组成的数据。每个变量都是一个整数,并且值因行和列而异。以下是我的数据的最小示例:
# Minimal example of data frame I have
df <- data.frame(x1 = c(1,2,3),
x2 = c(4,1,6),
x3 = c(3,0,2),
x4 = c(3,0,1))
我试图以某种方式将每一列折叠成一个包含每一行中的值的数字向量。例如,我想要类似的东西:
# Desired data based on minimal example
target_list <- list(c(1,2,3),
c(4,1,6),
c(3,0,2),
c(3,0,1))
最终目标是能够获取另一个具有许多列的数据帧并生成一个新数据帧,该数据帧仅包含索引与每个数字向量中的值匹配的列。对于每个向量,我生成另一个数据框。所有帧都存储在一个列表中。给定工作示例输入的目标输出示例:
# Example "super data frame" I will subset. The values contained in each column are arbitrary.
df2 <- data.frame(z1 = "a", z2 = "b",
z3 = 999, z4 = NA,
z5 = "foo", z6 = "bar")
# Subset "super data frame" to only columns in each vector in the list, store in a list
list(df2[ ,target_list[[1]]],
df2[ ,target_list[[2]]],
df2[ ,target_list[[3]]],
df2[ ,target_list[[4]]])
我尝试了各种粘贴方法,但它们产生的字符向量我不能用来按索引选择其他数据帧的列,例如它会产生这个:
paste0(df[1, ], df[2, ], df[3, ], df[4, ])
有关如何从 df 生成数值向量列表的任何帮助?
解决方案
或使用as.list
as.list(df)
#$x1
#[1] 1 2 3
#$x2
#[1] 4 1 6
#$x3
#[1] 3 0 2
#$x4
#[1] 3 0 1
您可以使用unname
删除列表的名称。
推荐阅读
- python-3.x - 如何使用 selenium python 自动分页?(无需手动选择下一步按钮)
- google-apps-script - 如果未填充单元格,则停止激活脚本
- json - 如何从此 json 字段中获取数据?
- android - 从片段上下文中获取 NavController 以使用回调侦听器启动 SimpleDialog
- plotly - 使用 plotly express 热图更改颜色条的位置
- javascript - (简单修复)如何通过 content.js Google Chrome 扩展插入 div?
- typescript - Azure Pipeline webpack typescript 别名在使用 Craco 时不起作用
- javascript - 在这个 js 代码片段中使用 break 语句是一种好习惯吗?
- php - 大型 pdf 上的 PHP readfile() 使 Google Cloud 服务器崩溃
- vim - Vim 在打开多个文件时遗漏了几个文件