gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:02:50 25 4
gpt4 key购买 nike

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





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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com