This question already has answers here:
Reshaping data.frame from wide to long format

(9 个回答)


去年关闭。




我正在尝试学习如何使用 tidyr 将宽数据转换为长数据。假设我的数据如下所示:
df1 <- data.frame(V1=c(1.5,7.4),
                  V2=c(6.7,8.8),
                  sim=c(1,2))

我想把我变成这样:
df2 <- data.frame(sim=c(1,1,2,2),
                  Value=c(1.5,6.7,7.4,8.8))

我认为收集是我必须使用的功能,但我不了解帮助文件。这就是我现在所拥有的:
df1 %>%
   gather(key=sim, value=V1:V2)

错误说“错误:无效的列规范”

谢谢!

最佳答案

尝试

library(tidyr)
df1 %>%
    gather(sim1, Value, V1:V2) %>%
    select(-sim1) %>%
    arrange(sim)
#    sim Value
#1   1   1.5
#2   1   6.7
#3   2   7.4
#4   2   8.8

根据 ?gather
  gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)

关于r - tiyr 宽到长?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29679381/

10-12 19:22