首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表转换为Dataframe

将列表转换为Dataframe
EN

Stack Overflow用户
提问于 2019-09-05 19:16:47
回答 4查看 85关注 0票数 2

我正在尝试将下面的列表转换为数据格式。

我试过熔化/浇铸、铸造、取消列表等,但似乎无法达到预期的产量。

事先非常感谢!

代码语言:javascript
复制
df <- list(
  name=rep(c(11,12), each=1),
  value=rnorm(2),
  name=rep(c(13,14), each=1),
  value=rnorm(2)
  )
df

我希望在dataframe中获得以下输出:

代码语言:javascript
复制
name  value
11    1.187
12    0.691
13    0.452
14    0.898
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-09-05 19:18:34

一个选项是将stack设置为两列data.frame,并将其spread回“wide”格式。

代码语言:javascript
复制
library(tidyverse)
enframe(df) %>%
   unnest(value) %>% 
   group_by(name) %>% 
   mutate(rn = row_number()) %>% 
   spread(name, value) %>%
   select(-rn)
# A tibble: 4 x 2
#  name   value
#  <dbl>   <dbl>
#1    11 -0.484 
#2    12 -0.110 
#3    13 -0.328 
#4    14  0.0737

或者另一种选择是使用来自开发版本的pivot_longer tidyr

代码语言:javascript
复制
df %>% 
  set_names(str_c(names(.), "_", cumsum(names(.) == "name"))) %>% 
  as_tibble %>% 
  mutate(rn = row_number()) %>%
  pivot_longer(-rn, names_to =c(".value", "group"), names_sep = '_') %>% 
  select(name, value)

或者使用base R

代码语言:javascript
复制
reshape(transform(stack(df), rn = ave(seq_along(ind), ind,
    FUN = seq_along)), idvar = 'rn', direction = 'wide', timevar = 'ind')
票数 3
EN

Stack Overflow用户

发布于 2019-09-05 19:28:45

这里有一个使用split的R基的方法-

代码语言:javascript
复制
data.frame(
  split(v <- unlist(df), sub("[0-9]+", "", names(v)))
)

  name      value
1   11 -0.2282623
2   12 -0.8101849
3   13 -0.9311898
4   14  0.3638835

数据-

代码语言:javascript
复制
df <- structure(list(name = c(11, 12), value = c(-0.22826229127103, 
-0.810184913338659), name = c(13, 14), value = c(-0.931189778412408, 
0.363883463286674)), .Names = c("name", "value", "name", "value"
))
票数 2
EN

Stack Overflow用户

发布于 2019-09-05 19:39:53

代码语言:javascript
复制
d <- data.frame(
  name = unlist(df[names(df) == "name"]),
  value = unlist(df[names(df) == "value"])
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57811760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档