R函数将行排列成列
将行值展开到列中 数据看起来像R函数将行排列成列,r,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
> 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
我使用了这个函数,它将日期列扩展为三列,但没有正确填充它们
separate_DF <- spread(df2, "date_no", "Abs")
因此,三个日期列由Abs值填充。每种浓度的真菌都是它自己的一行。试试这个
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=""))
试试这个
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=""))
你从差价电话中得到的有什么问题吗?我觉得不错。您可以将
sep=“\u”
添加到参数列表中,以将日期
添加到列名称中。它会集中进行一些奇怪的计算,因此列不再正确。当它在三个新的日期列中分离Abs值时,一次只填充一列。因此date1的值为1:24、date2 25:96和date3 97:168。当一列具有值时,其他两列具有NAs。添加sep=“\u1”无法解决此问题。您能否提供一些发生此问题的示例数据?因为这不会发生在你提供的东西上。请注意,spread将为每个独特的真菌/conc组合创建一行,并显示该独特组合的所有日期。更新原始帖子,了解更多信息。这有帮助吗?当我运行你问题中的代码,或者在你问题中的新数据上运行TheRimalaya的答案时,我得到的结果看起来非常合理。也许你也可以这样做,把结果放在你的问题中,而不是你觉得有什么不对。你从价差中得到的有什么不对?我觉得不错。您可以将sep=“\u”
添加到参数列表中,以将日期
添加到列名称中。它会集中进行一些奇怪的计算,因此列不再正确。当它在三个新的日期列中分离Abs值时,一次只填充一列。因此date1的值为1:24、date2 25:96和date3 97:168。当一列具有值时,其他两列具有NAs。添加sep=“\u1”无法解决此问题。您能否提供一些发生此问题的示例数据?因为这不会发生在你提供的东西上。请注意,spread将为每个独特的真菌/conc组合创建一行,并显示该独特组合的所有日期。更新原始帖子,了解更多信息。这有帮助吗?当我运行你问题中的代码,或者在你问题中的新数据上运行TheRimalaya的答案时,我得到的结果看起来非常合理。也许你也可以这样做,把结果放在你的问题上,而不是确切地说你觉得哪里不对。
fungi Conc date1 date2 date3
1 1 2.5 x x x
2 2 2.5 x x x