当前位置:  开发笔记 > 编程语言 > 正文

将键值数据帧转换为列表

如何解决《将键值数据帧转换为列表》经验,为你挑选了1个好方法。

这是我拥有的结构类型.数据框中有几千行,其结构与以下内容类似:

vct_names <- c("apples", "apples", "grapes", "apples", "grapes")
vct_codes <- c(23, 35, 123, 43, 156)
df_values <- data.frame(names = vct_names, codes = vct_codes)

我想将上面的数据框转换为命名列表.我想遍历上面数据框的每一行,并将此数据框转换为列表.该列表具有以下结构:

lst_values <- list()
lst_values$apples <- c(23, 35, 43)
lst_values$grapes <- c(123, 156)

任何有关解决这个问题的优雅方法的想法.



1> 42-..:

split功能全被精确设计做到这一点.作为第一个文章,它适用于数据框和矢量.它通过作为通用函数来实现这种多态行为.

> methods(split)
[1] split.data.frame  split.data.table* split.Date        split.default    
[5] split.IDate*      split.POSIXct     split.zoo*       
see '?methods' for accessing help and source code

所以这会更经济:

> lst_values <- split(vct_codes, vct_names)
> lst_values
$apples
[1] 23 35 43

$grapes
[1] 123 156

在这种情况下,我们正在使用split.default.有时打印代码会提供信息,但在这种情况下,我们只会在传递数据和参数之前看到边缘情况的一些初步操作.Internal(split(seq_along(x), f)).

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有