r - 将数据帧转换为特殊格式的列表以供在函数中使用

标签 r list dataframe

我有一个如下所示的数据框:

df = data.frame(name = c("chr", "test"), ncol = c(2, 3))

但是,为了输入函数(ComplexHeatmap),我需要一个如下所示的列表:

list(chr = list(ncol = 2), test = list(ncol = 3))

从该数据帧转换为该格式的列表的最简单方法是什么?执行 as.list 无法获得正确的格式。

谢谢! jack

最佳答案

一种方法是使用 plyr。我怀疑您可能还有不止这两列,所以让

df <- data.frame(name = c("chr", "test"), ncol = c(2, 3), a = 1:2)
#   name ncol a
# 1  chr    2 1
# 2 test    3 2

然后

dlply(df, .(name), function(r) as.list(r[-1]))
# $chr
# $chr$ncol
# [1] 2
#
# $chr$a
# [1] 1
#
#
# $test
# $test$ncol
# [1] 3
#
# $test$a
# [1] 2
#
#
# attr(,"split_type")
# [1] "data.frame"
# attr(,"split_labels")
#   name
# 1  chr
# 2 test

关于r - 将数据帧转换为特殊格式的列表以供在函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53573280/

相关文章:

r - R中没有标题/标签的图

r - 如何将 R 语料库保存到磁盘

r - 摘要(随机森林) - 如何阅读?

c++ - 我的 C++ 列表迭代器是在改变位置,还是我做错了什么?

python - 在数据框中分隔特定值

python - 调用返回 FloatType() 的 UDF 时为 "expected zero arguments for construction of ClassDict (for numpy.dtype)"

css - 将 R Shiny showNotification 移动到屏幕中央

java - 链表排序问题

python - 在python中将一个列表插入另一个列表的语法是什么?

python - 如何从列名称为 "crashloc"的簇中获取值,其中 "crashtype"= ="Serious Suspected Injury"