将列从 Dataframe 转换为r中的列表

xpcnnkqh  于 2023-02-26  发布在  其他
关注(0)|答案(3)|浏览(213)

我有一个 Dataframe ,看起来像这样

treeID  Z   npoints     cnvhll_          inter
3   4.0     24.877  904     206.006         3
4   5.0     24.322  1105    92.189          4
9   10.0    22.085  488     107.718         6
18  19.0    20.195  799     137.346         12
19  20.0    20.028  1597    133.829         13

我使用以下代码将treeID列转换为list

cliploy <- read.csv(file = 'dataframe.csv')
polylist <- cliploy["treeID"]
treepolylist <- as.list(polylist)

我得到了一个这样的列表

$treeID
 [1]   4   5  10  19  20  21  22  26  28  33  34  36  41  42  43  44  47  49  50  53  55  57  59  60  62  67  68  74  76  82  83  84  85  86  87  88  90  91  92  94  97  99
[43] 100 105 106 108 110 111 112 125 129 133 138 139 140 145 150 153 161 169 172 176 180 190 191 197 202 210 218 219 222 224 233 237 240 246 257 269 324 325 326 327 328 331
[85] 334

我不想要这种类型的列表,我想要这样的东西。如何在r中更改列表的类型

[[1]]
[1] 4

[[2]]
[1] 5

[[3]]
[1] 10

[[4]]
[1] 19

[[5]]
[1] 20
6qqygrtg

6qqygrtg1#

所以不用这个代码

polylist <- cliploy["treeID"]

我们可以使用

polylist <- cliploy[["treeID"]]

以获得期望的结果

ddhy6vgd

ddhy6vgd2#

下面是在group_split()之后使用mappurrr方法:

library(dplyr)
library(purrr)

df %>% 
  group_split(treeID) %>% 
  map(., ~(.x %>% pull(treeID)))

输出:

[[1]]
[1] 4

[[2]]
[1] 5

[[3]]
[1] 10

[[4]]
[1] 19

[[5]]
[1] 20
oknwwptz

oknwwptz3#

我们可以用

as.list(unique(df1$treeID))
[[1]]
[1] 4

[[2]]
[1] 5

[[3]]
[1] 10

[[4]]
[1] 19

[[5]]
[1] 20

相关问题