【问题标题】:R reshape dataframe for only one columnR仅针对一列重塑数据框
【发布时间】:2018-05-25 14:45:26
【问题描述】:

我有一个数据框,我正在尝试将第一列重塑为新的标题。我曾尝试在 Google 上搜索并使用 Stack Overflow,但找不到任何符合我的问题的内容

这是我正在尝试做的一个简单示例。我有一个如下所示的数据框

    v1 v2 v3 v4
1    A  B  1  0
2    C  D  3  0

这个可以得到:

v1 <- matrix(c("A", "C"), nrow=2, ncol=1) 
v2 <- matrix(c("B", "D"), nrow=2, ncol=1) 
v3 <- c(1,3)
v4 <- c(0,0)

data <-  cbind(v1,v2,v3,v4)
data <- as.data.frame(data)

我正在尝试将数据转换为以下内容

| V2 | A.V3 | A.V4 | C.V3 | C.V4 |
| B  |   1  |   2  |   0  |   0  |
| D  |   0  |   0  |   3  |   4  |

我尝试使用 reshape 包,但无法让它按我想要的方式工作。

谢谢, 山

【问题讨论】:

    标签: r reshape


    【解决方案1】:

    由于您没有努力展示您的尝试,我假设您有一个名为“数据”的数据。我还将假设您在表 2 中输入了拼写错误,其中“2”和“4”的值神奇地出现了,尽管它们没有出现在表 1 中。不过,以下应该提供所需的结果。

    reshape(数据, idvar = "v2", timevar = "v1", v.names = c("v3", "v4"), direction = "wide")

    【讨论】:

    • 对 Rebecca 表示歉意,我已经尝试了一些方法,例如 reshape2 包中的 melt 和 dcast ,但一直出错或丢失数据。我没有发布代码,因为我认为这一切都错了!我尝试阅读有关函数 reshape 的文档,因为我无法让它完全与我的数据集一起工作。我的数据集中有多个分类列,我不想移动我应该在示例中使用的分类列。如果改进我的示例,我将如何让它工作我有一个分类的 V5 列?
    • 应该应用相同的代码。您不想移动的所有列都应从 v.names 中排除。
    • 感谢丽贝卡,再次为糟糕的帖子道歉!
    猜你喜欢
    • 2018-09-11
    • 1970-01-01
    • 2015-09-30
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2019-06-08
    相关资源
    最近更新 更多