Estou recebendo um erro ao tentar usar o MELT () em uma estrutura de dados contendo datas

StackOverflow https://stackoverflow.com/questions/2831319

  •  26-09-2019
  •  | 
  •  

Pergunta

Eu gostaria de derreter o dataframe para que em uma coluna eu tenha datas e em um segundo eu tenho o nome de usuário como a variável e, finalmente, o valor.

Estou recebendo este erro:

Erro em as.date.numeric (valor): 'origem' deve ser fornecido

E enquanto eu entendo o erro, não tenho certeza de como contornar isso.

Uma pequena amostra dos dados é:

structure(list(created_at = structure(c(14007, 14008, 14009, 
14010, 14011, 14012), class = "Date"), benjamin = c(16, 0, 0, 
0, 0, 0), byron = c(0, 0, 0, 0, 0, 0), cameronc = c(0, 0, 0, 
0, 0, 0), daniel = c(0, 0, 0, 0, 0, 0), djdiaz = c(0, 0, 0, 0, 
0, 0), gene = c(16, 77, 64, 38, 72, 36), joel = c(0, 0, 0, 0, 
0, 2), kerem = c(0, 0, 0, 0, 0, 0), sophia = c(0, 0, 0, 0, 0, 
0), SuperMoonMan = c(0, 0, 0, 0, 0, 0)), .Names = c("created_at", 
"benjamin", "byron", "cameronc", "daniel", "djdiaz", "gene", 
"joel", "kerem", "sophia", "SuperMoonMan"), row.names = c(NA, 
6L), class = c("cast_df", "data.frame"))

Obrigado pela ajuda.

Foi útil?

Solução

Tente converter o created_at variável em um vetor de caractere. melt também não parece gostar do cast_df classe, mas tive sucesso ao redefinir a classe para apenas data.frame. Igual a:

df <- as.data.frame(df)
df$created_at <- as.character(df$created_at)
library(reshape)
melt(df)

Outras dicas

Seu erro é causado por rbind usado em melt, que é conseqüência de dados errados para derreter. Eu não sei como você cria o seu cast_df data.frame, mas faltando atributos (idvars e rdimnames) que são exigidos por melt.cast_df.

Por isso wkmor1 Solução funciona, melt.data.frame Não precisa desses argumentos. E sem se converter Date para character Pode ser feito como:

df <- as.data.frame(df)
melt(df, id="created_at")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top