我有点迷茫,我有一个数据框架,看起来是这样的:
tract ageClass count
1 [0-4] 71
2 [0-4] 192
3 [0-4] 81
1 [5-8] 9
2 [5-8] 86
3 [5-8] 42
我希望有这样的结果:
tract [0-4] [5-8]
1 71 9
2 192 86
3 81 42
我在网上寻找解决方案已经有一段时间了,但到目前为止还没有.知道吗?
非常感谢!
发布于 2015-03-18 10:03:39
ageClass <- c("[0-4]", "[5-8]")
ageClassDF <- lapply(ageClass, function(x) dx[which(dx$ageClass==x), ])
ageClassDF <- Reduce(function(...) merge(..., by = "tract.1", all = TRUE), ageClassDF )
发布于 2015-03-18 10:05:19
我可以想到三个可能的选项(假设您的数据集称为df
)
xtabs(count ~ tract + ageClass, df)
# ageClass
# tract [0-4] [5-8]
# 1 71 9
# 2 192 86
# 3 81 42
或
library(reshape2)
dcast(df, tract ~ ageClass, value.var = "count")
# tract [0-4] [5-8]
# 1 1 71 9
# 2 2 192 86
# 3 3 81 42
或
library(tidyr)
spread(df, ageClass, count)
# tract [0-4] [5-8]
# 1 1 71 9
# 2 2 192 86
# 3 3 81 42
https://stackoverflow.com/questions/29118709
复制相似问题