有人可以告诉我如何从数据帧df
到下面的可复制代码示例中所需的数据帧吗?基本上,这只是一个简单的枢轴。谢谢!
id <- c(1, 2)
x <- c('a', 'b')
y <- c('c', 'd')
df <- data.frame(id, x, y)
head(df)
c1 <- c('id', 'x', 'y')
c2 <- c('1', 'a', 'c')
c3 <- c('2', 'b', 'd')
desired <- data.frame(c1, c2, c3)
head(desired)
这似乎可行(另请参见here):
test <- transpose(df)
colnames(test) <- rownames(df)
rownames(test) <- colnames(df)
但这是最好的方法吗?
答案 0 :(得分:1)
一个班轮是
setNames(data.frame(names(df), t(df)), paste0("c", 1:3))
一个更通用的解决方案,无需对向量1:3
进行硬编码
setNames(data.frame(names(df), t(df)), paste0("c", seq_along(names(df))))