Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将键值数据帧转换为列表_R_List_Dataframe_Lapply - Fatal编程技术网

R 将键值数据帧转换为列表

R 将键值数据帧转换为列表,r,list,dataframe,lapply,R,List,Dataframe,Lapply,这就是我的结构类型。数据帧中有几千行,其结构与以下类似: 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) vct\u name拆分功能正是为此而设计的。它在数据帧和向量上都起作用。它通过作为泛型函数来

这就是我的结构类型。数据帧中有几千行,其结构与以下类似:

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)

vct\u name拆分功能正是为此而设计的。它在数据帧和向量上都起作用。它通过作为泛型函数来实现这种多态行为

> 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
>lst\u值lst\u值
美元苹果
[1] 23 35 43
美元葡萄
[1] 123 156

在本例中,我们使用的是
split.default
。有时,打印代码会提供信息,但在这种情况下,我们只看到在将数据和参数传递给
之前对边缘情况的一些初步操作。内部(拆分(沿(x),f))

这是一种美!我们需要在lappy()中嵌套split()吗split(df_值,df_值$names)似乎工作得很好。
split()
将data.frame拆分为多个数据。frame在一个列表中,因此需要迭代每个data.frame并只提取lappy不需要的一列值。split函数将处理向量并返回命名列表。更不用说split+lappy=
?by
> 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