【发布时间】:2019-08-25 20:48:27
【问题描述】:
我想对我的数据库进行修改。我想要做的是将数据库的每一行都转换为一个人。
我希望它看起来像这样。示例:
ID massaseca Fator Anexo Teor Tempo
1 334,68 AM c 0 0
1 344,19 AM c 0 10
1 347,32 AM c 0 20
1 350,2 AM c 0 30
1 352,52 AM c 0 40
. . . . . .
. . . . . .
虽然我在论坛中找到了一些例子,但我无法解决我的问题。我将介绍这两种尝试。当我执行下面的代码时,我发现它覆盖了一些变量并且不是你想要的方式。
####################################
require(reshape2)
long <- melt(dados1, id.vars = c("Teor", "Fator"))
melt(dados1, id.vars = 1:2)
melt(dados1, measure.vars = 4:45)
melt(dados1, measure.vars = as.character(10,20,30,
40,50,60,70,80,
90,105,120,135,150,
170,190,210,230,250,
270,290,310,330,350,
360,405,450,510,570,
630,690,750,810,870,
930,990,1050,1110,1170,
1230,1290,1350))
################# CASE 2 ###########
####################################
library(data.table)
long1 <- melt(setDT(dados1), id.vars = c("Teor", "Fator"), variable.name = "Tempo")
long1
melt(setDT(dados1), id.vars = 1:2, variable.name = "Tempo")
melt(setDT(dados1), measure.vars = 4:45, variable.name = "Tempo")
melt(setDT(dados1), measure.vars = as.character(10,20,30,
40,50,60,70,80,
90,105,120,135,150,
170,190,210,230,250,
270,290,310,330,350,
360,405,450,510,570,
630,690,750,810,870,
930,990,1050,1110,1170,
1230,1290,1350), variable.name = "Tempo")
但是,上面的例子是在另一个变量下面填充一个变量,怎么做?
【问题讨论】:
-
您最好在此处发布workable sample of data,而不是让人们从第三方网站下载文件
-
嗨,卡米尔,非常感谢您的关注。如有必要,我可以通过您的电子邮件将电子表格发送给您。
-
点击我发布的链接。有一些示例说明如何将数据添加到问题中或使用常用数据集。
-
看起来像一个重塑问题。
tidyr::gather(dados1, Tempo, massaseca, -(1:3))
标签: r database database-design statistics wide-column-store