R:将 data.frame 转换为带有 data.frame 标签的列表

标签 r list dataframe

我有以下数据框:

df0 <- data.frame(N1    = c("A","B")
                , N2    =c("C","C")
                , value =c(10,10)
                )
> df0
  N1 N2 value
1  A  C    10
2  B  C    10

我想转换成具有以下结构的列表:

list0 <- list( A= list( C= 10 )
             , B= list( C= 10 ) 
             )
> list0
$A
$A$C
[1] 10

$B
$B$C
[1] 10

> str(list0)
List of 2
 $ A:List of 1
  ..$ C: num 10
 $ B:List of 1
  ..$ C: num 10

有什么想法吗?我的问题是获取标签(名称)而不是索引。

最佳答案

你可以使用apply函数:

list0 <- setNames(apply(df0, 1, function(row) {
                 a <- list()
                 a[[row[2]]] <- as.numeric(row[3]) 
                 return (a) 
              }), df0$N1)
list0
$A
$A$C
[1] 10


$B
$B$C
[1] 10


str(list0)
List of 2
 $ A:List of 1
  ..$ C: num 10
 $ B:List of 1
  ..$ C: num 10

关于R:将 data.frame 转换为带有 data.frame 标签的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420704/

相关文章:

r - 如何在漏斗图中具有固定大小但动态悬停文本?

r - 使用 r 中的 `for loop` 函数将 `map` 翻译成 purrr

R:pROC 包:绘制特定范围内的 ROC 曲线?

python - 在 Python 中以独特的方式组合两个列表

javascript - 如何循环浏览输入的 Viewbag 列表?

python - 在 Python 中合并两个列表

python - dask DataFrame.assign 炸毁了 dask 图

r - 如何处理 'rpart' 中的连续变量和离散变量 - 使用 R 的决策树?

python pandas dataframe - 根据列值重复行

python - 如何根据多个条件用字符串拆分 Pandas 数据框列