如何使我的数据框架或表
TIME_PERIOD MARRIAGE_LICENSES
1 2011-01 742
2 2011-02 796
3 2011-03 1210
4 2011-04 1376
....看上去像是
01 02 03 04 05 06 07 08 09 10 11 11
2011 742 796 1210 1376
2012
2013
2014
2015诸若此类?
发布于 2015-10-10 23:36:03
您可以在data.table中这样做,如:
library(data.table)
setDT(dat)
dcast(dat, format(TIME_PERIOD, "%Y") ~ format(TIME_PERIOD, "%m"),
value.var = "MARRIAGE_LICENSES")(注意:需要将MARRIAGE_LICENSE存储为具有适当format方法的Date或其他对象)
发布于 2015-10-10 23:34:15
使用reshape2,您可以执行以下操作(这将为您提供一个data.frame)
require(reshape2)
dat$year <- as.numeric(substr(dat$TIME_PERIOD,1,4))
dat$month <- as.numeric(substr(dat$TIME_PERIOD,6,8))
require(reshape2)
dcast(dat, year~month, value.var = "MARRIAGE_LICENSES")这给了你
year 1 2 3 4
1 2011 742 796 1210 1376如果您想像行名那样使用您的格式和年份:
df <- dcast(dat, year~month, value.var = "MARRIAGE_LICENSES")
rownames(df) <- df$year
df[,-1]导致
1 2 3 4
2011 742 796 1210 1376发布于 2015-10-10 23:34:34
你可以做这样的事
library(tidyr) ## for separate()
xtabs(MARRIAGE_LICENSES ~ ., separate(df, TIME_PERIOD, c("year", "month"), "-"))
# month
# year 01 02 03 04
# 2011 742 796 1210 1376数据:
df <- structure(list(TIME_PERIOD = structure(1:4, .Label = c("2011-01",
"2011-02", "2011-03", "2011-04"), class = "factor"), MARRIAGE_LICENSES = c(742L,
796L, 1210L, 1376L)), .Names = c("TIME_PERIOD", "MARRIAGE_LICENSES"
), class = "data.frame", row.names = c("1", "2", "3", "4"))https://stackoverflow.com/questions/33060017
复制相似问题