【发布时间】:2019-11-15 06:27:47
【问题描述】:
我想重塑一个非常简单的数据框,但找不到这样做的方法
我试过这个解决方案:Transposing data frames 以及所有相关的解决方案,没有运气
我有一个整洁的数据框,看起来像这样:
df<-rbind(c('a','x1'),c('a','x2'),c('a','x3'),
c('b','x6'),c('b','x7'))
colnames(df)<-c('var','val')
尝试过
library(dplyr)
library(tidyr)
df %>%
gather(var, val, 2:ncol(df)) %>%
spread_(names(data)[1], "val")
我想要一个看起来像这样的数据框:
a x1 x2 x3
b x6 x7 NA
但我得到了这个错误
Error: Each row of output must be identified by a unique combination of keys
【问题讨论】:
-
仅供参考,您的
df是矩阵而不是数据框 -
@Sotos:我试图在这里简化我拥有的实际数据框。抱歉我的无知,但是将我拥有的数据框转换为矩阵会简化问题的解决?
-
不,它需要是一个data.frame。不过没问题。我明白你在问什么。我只是在寻找一个重复的目标,因为这看起来像是以前问过的问题:)