首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对2D数据帧进行解卷积?

如何对2D数据帧进行解卷积?
EN

Stack Overflow用户
提问于 2017-08-09 19:07:47
回答 1查看 59关注 0票数 0

我创建了一个数据框,其中列A和B包含子列。下面是一个示例:

代码语言:javascript
复制
colnames(df) 
#[1] "A" "B" "C" "D"

colnames(df$A)
#[1] "X1" "X2" "X3" "X4"

colnames(df$B)
#[1] "X1" "X2"

我的问题是如何将这种结构分解为:

代码语言:javascript
复制
colnames(df)
#[1] "A.X1" "A.X2" "A.X3" "A.X4" "B.X1" "B.X2"

示例:

代码语言:javascript
复制
structure(list(Name = 1:5, A = structure(list(X1 = structure(c(1L, 
2L, 1L, 2L, 1L), .Label = c("1", "5"), class = "factor"), X2 = structure(c(1L, 
2L, 1L, 2L, 1L), .Label = c("2", "4"), class = "factor"), X3 = structure(c(2L, 
1L, 2L, 1L, 2L), .Label = c("3", "4"), class = "factor"), X4 = structure(c(2L, 
1L, 2L, 1L, 2L), .Label = c("1", "5"), class = "factor")), .Names = c("X1", 
"X2", "X3", "X4"), row.names = c(NA, -5L), class = "data.frame"), 
    B = structure(list(X1 = structure(c(2L, 1L, 2L, 1L, 2L), .Label = c("1", 
    "5"), class = "factor"), X2 = structure(c(2L, 1L, 2L, 1L, 
    2L), .Label = c("2", "4"), class = "factor")), .Names = c("X1", 
    "X2"), row.names = c(NA, -5L), class = "data.frame")), .Names = c("Name", 
"A", "B"), row.names = c(NA, -5L), class = "data.frame")
EN

回答 1

Stack Overflow用户

发布于 2017-08-09 19:33:40

您可以使用tidyr包中的unnest()函数。

首先,让我们创建一些示例数据。如果您的数据看起来不是这样,请告诉我。

代码语言:javascript
复制
library(tidyverse) # Loads tidyr, tibble, and other useful packages

df <- tibble(A = list(tibble(X1 = rnorm(327), X2 = rnorm(327),
             X3 = rnorm(327), X4 = rnorm(327))),
             B = list(tibble(X1 = rnorm(327), X2 = rnorm(327))))

现在unnest和你差不多完成了。

代码语言:javascript
复制
df <- unnest(df)

剩下的就是重命名这些列了,因为unnest会自动给出它自己的名称。

代码语言:javascript
复制
colnames(df) <- c("A.X1", "A.X2", "A.X3", "A.X4", "B.X1", "B.X2")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45588967

复制
相关文章

相似问题

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