我用下面的代码重现了大约sampledata个数据:

###producing sample data
sampledatain1 <- data.frame(in_1=c(1,2,3,4,5),in_2=c("A","B","C","D","E"),stringsAsFactors = F)
sampledatain2 <- data.frame(in_1=c(6,7,8,9,10),in_2=c("F","G","H","I","J"),stringsAsFactors = F)
sampledatain3 <- data.frame(in_1=c(99,98,97,96,95),in_2=c("Z","Y","X","W","V"),stringsAsFactors = F)
sampledata <- data.frame(row = 1:3,
                    colmerge1 = c("MA","MB","MC"), 
                    colmerge2 = -99:-97,
                    stringsAsFactors = FALSE)
sampledata$df <- list(sampledatain1,sampledatain2,sampledatain3)

我想平整所有嵌套的数据帧并将它们组合在一起,使结果看起来像desired_data:

###reproducing desired data 
library(data.table)
sampledatain1$row <- 1
sampledatain1$colmerge1 <- "MA"
sampledatain1$colmerge2 <- -99

sampledatain2$row <- 2
sampledatain2$colmerge1 <- "MB"
sampledatain2$colmerge2 <- -98

sampledatain3$row <- 3
sampledatain3$colmerge1 <- "MC"
sampledatain3$colmerge2 <- -97

desired_data <- rbindlist(list(sampledatain1,sampledatain2,sampledatain3))

如何使用函数从sampledata生成Desired_data呢?

推荐答案

您要查找的值是unnest()(unnest_longer(),然后unpack()/unnest_wider()也可以):

> tidyr::unnest(sampledata, df)
# A tibble: 15 × 5
     row colmerge1 colmerge2  in_1 in_2 
   <int> <chr>         <int> <dbl> <chr>
 1     1 MA              -99     1 A    
 2     1 MA              -99     2 B    
 3     1 MA              -99     3 C    
 4     1 MA              -99     4 D    
 5     1 MA              -99     5 E    
 6     2 MB              -98     6 F    
 7     2 MB              -98     7 G    
 8     2 MB              -98     8 H    
 9     2 MB              -98     9 I    
10     2 MB              -98    10 J    
11     3 MC              -97    99 Z    
12     3 MC              -97    98 Y    
13     3 MC              -97    97 X    
14     3 MC              -97    96 W    
15     3 MC              -97    95 V

要将其转换为data.table,您可以使用as.data.table()

欲了解更多关于unnest(),read the documentation的信息.

R相关问答推荐

R gtsummary tBL_summary,包含分层和两个独立分组变量

在R中使用自定义函数时如何删除该函数的一部分?

混淆矩阵,其中每列和等于1

对lme 4对象运行summary()时出错(diag中的错误(from,names = RST):对象unpackedMatrix_diag_get找不到)

为什么当我try 在收件箱中使用合并功能时会出现回收错误?

我不能在docker中加载sf

根据多个条件增加y轴高度以适应geom_text标签

使用sf或terra的LINESTRAING的累积长度

在另存为PNG之前隐藏htmlwidget绘图元素

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

Select 季度月值

如何识别倒排的行并在R中删除它们?

在不对R中的变量分组的情况下取两行的平均值

在ggploy中创建GeV分布时出错

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

注释不会绘制在所有ggplot2面上

如何使用grepl()在数据帧列表中 Select 特定字符串?

Broom.Mixed::Augment不适用于Sample::分析

使用一个标签共享多个组图图例符号

把代码写成dplyr中的group_by/摘要更简洁吗?