R函数将行分散为列

时间:2019-04-08 17:03:09

标签: r

将行值扩展为列

数据看起来像

> head(df2)
    ID fungi     Conc   Abs date_no
1    1    R3 2.500000 0.209       0
22   1    R3 1.250000 0.153       0
43   1    R3 0.625000 0.159       0
64   1    R3 0.312500 0.164       0
85   1    R3 0.156250 0.157       0
106  1    R3 0.078125 0.170       0

然后我使用了此功能,该功能将date列扩展为三列,但没有正确填充它们。

separate_DF <- spread(df2, "date_no", "Abs")

我得到的是这个...

> head(df3)
  ID fungi       Conc date_no_0 date_no_1 date_no_3
1  1    R3 0.01953125     0.162        NA        NA
2  1    R3 0.03906253     0.169        NA        NA
3  1    R3 0.07812500     0.170        NA        NA
4  1    R3 0.15625000     0.157        NA        NA
5  1    R3 0.31250000     0.164        NA        NA
6  1    R3 0.62500000     0.159        NA        NA

这样,三个日期列将由Abs值填充。而且每种浓度的每种真菌都有自己的一行。

1 个答案:

答案 0 :(得分:2)

尝试一下,

library(tidyr)

txt <- "fungi date  Abs Conc
1      1     x   2.5
1      2     x   2.5
1      3     x   2.5
2      1     x   2.5
2      2     x   2.5
2      3     x   2.5
"
date_df <- read.table(textConnection(txt), header = TRUE)
print(spread(date_df, date, Abs, sep=""))

结果:

  fungi Conc date1 date2 date3
1     1  2.5     x     x     x
2     2  2.5     x     x     x