我有一个包含以下列的Excel文件

Column1  Column2  Column3
ab        bb        0.5
ab        bc        0.1
ab        cd        0.7
ab        dd        0.8
ac        bb        0.2
ac        bg        0.8
ac        ee        0.8
ac        dd        0.3


x <- data.frame (column1 = c("ab","ab","ab","ab","ac","ac","ac","ac"),
                 column2 = c("bb","bc","cd","dd","bb","bg","ee","dd"),
                 column3 = c(0.5, 0.1, 0.7, 0.8, 0.2, 0.8, 0.8, 0.3))

我想改变它。
    ab   ac
bb  0.5  0.2
bc  0.1
cd  0.7
dd  0.8  0.3
bg       0.8
ee       0.8

最佳答案

reshape2软件包是您的 friend 在这里:

require(reshape2)
dcast(x, column2 ~ column1, value.var="column3")
#   column2  ab  ac
# 1      bb 0.5 0.2
# 2      bc 0.1  NA
# 3      bg  NA 0.8
# 4      cd 0.7  NA
# 5      dd 0.8 0.3
# 6      ee  NA 0.8

更新资料

由于@jmsigner和我几乎同时发布了完全相同的答案,因此这是基本R中的一个选项,但这并不能为您提供很好的输出:
reshape(x, direction="wide", idvar="column2", timevar="column1")
#   column2 column3.ab column3.ac
# 1      bb        0.5        0.2
# 2      bc        0.1         NA
# 3      cd        0.7         NA
# 4      dd        0.8        0.3
# 6      bg         NA        0.8
# 7      ee         NA        0.8

关于r - R:表格格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11735192/

10-12 18:09