r - 如何通过 id 将数据帧转换为 R 中的列表?

标签 r list dataframe

这个问题在这里已经有了答案:





Convert data frame to list

(3 个回答)


8年前关闭。




我整个晚上都在努力弄清楚如何在 R 中做到这一点。

基本上我有一个如下所示的数据集:

id<-c(1,1,1,2,2,3,3,3,3)
label<-c('a', 'b', 'c', 'b', 'd', 'a', 'c', 'd', 'e')
mydata<-as.data.frame(cbind(id, label))
mydata$id<-as.integer(as.character(mydata$id))
mydata$label<-as.character(mydata$label)
mydata
  id label
1  1     a
2  1     b
3  1     c
4  2     b
5  2     d
6  3     a
7  3     c
8  3     d
9  3     e

我想将 mydata 转换为 mylist 如下所示:
mylist<-list()
mylist[[1]]<-c('a', 'b', 'c')
mylist[[2]]<-c( 'b', 'd')
mylist[[3]]<-c( 'a', 'c', 'd', 'e')
mylist
[[1]]
[1] "a" "b" "c"

[[2]]
[1] "b" "d"

[[3]]
[1] "a" "c" "d" "e"

那么,我如何从 mydata 到 mylist?

注意:我的实际数据框有大约 200 万行。

[背景:我正在研究一个多标签分类问题,需要计算 F1、精度和召回率以及作为否。标签是可变的,我以为我可以将它们全部放入一个大列表中并以这种方式进行比较]

最佳答案

看看?split :

split(mydata$label, mydata$id)
#$`1`
#[1] "a" "b" "c"
#
#$`2`
#[1] "b" "d"
#
#$`3`
#[1] "a" "c" "d" "e"

关于r - 如何通过 id 将数据帧转换为 R 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18991976/

相关文章:

r - 分面后将相关系数放在 ggplot 散点图上

Python 函数有 2 个列表,但只更改了 1 个

r - 调用函数时设置列名

python - 按任意间隔对时间索引的 DataFrame 进行分组

python - 如何解决值错误: Columns must be same length as key?

r - 将曲线添加到 R 中的散点图

r - R和Stata中的一阶线性线性面板模型方差

r - Lasso 回归中 newx 的格式在 R 中给出错误

list - 在列表中查找numpy数组的索引

java - 将 List<int[]> .get() 函数与数组进行比较的 boolean 表达式出现问题