我在理解reshape函数时遇到了一些问题,我想特别使用它,因为它使用了base r。
考虑下面的代码
month <- c("jan", "feb", "mar", "apr")
hours <- c(40, 40, 35, 37)
days <- c(31, 28, 31, 30)
dat <- data.frame(month, hours, days)
在上面的例子中,month,hours和days是列,但我想转换一下,这样“hours”和“days”是列中的行,“month”列中的4个月是它们自己的列,而不是行/观察。
任何帮助将不胜感激。我试着看过其他的例子,但似乎不能让我的头周围。
3条答案
按热度按时间anhgbhbe1#
我认为你所做的是旋转,又名转置, Dataframe ,而不是重塑它,你可以得到你想要的只是
t(dat)
或,更花哨,它为您提供:
zpqajqem2#
我不怎么使用这个函数,但是网上有很多关于它的教程。这里有一个帮助我想出这个答案。https://www.datasciencemadesimple.com/reshape-in-r-from-wide-to-long-from-long-to-wide/
也许这就是您正在寻找的输出?
虽然你说你想使用
reshape
,这里有一个tidyverse解决方案(不知道为什么你想避免它?)cvxl0en23#
如果数据是长格式或宽格式,则整形是有意义的
将数据转换为长格式
然后整形为宽