我想融化 dataframe 这样,在一列中我有日期,在第二列中我有用户名作为变量,最后是值。

我收到此错误:

as.Date.numeric(value) 中的错误:必须提供“原产地”

虽然我理解这个错误,但我不太确定如何解决它。

数据的一个小样本是:

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"))

感谢您的帮助。

有帮助吗?

解决方案

尝试created_at变量转换成一个字符向量。 melt也似乎并不像cast_df类,但我由类重置只是data.frame取得了成功。像这样:

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

其他提示

您的错误是由以下原因引起的 rbind 用于 melt, ,这是错误数据融化的结果。我不知道你是如何创建你的 cast_df data.frame, ,但它缺少属性(idvarsrdimnames) 所要求的 melt.cast_df.

因此 wkmor1 解决方案有效, melt.data.frame 不需要这个参数。并且无需转换 Datecharacter 可以这样做:

df <- as.data.frame(df)
melt(df, id="created_at")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top