【问题标题】:timeline error in R: ‘min’ not meaningful for factorsR中的时间线错误:'min'对因素没有意义
【发布时间】:2019-11-27 13:10:34
【问题描述】:

我的原始数据集

df

   bugid           timestamp                    commenter     Owner.
1  18348 2011-07-10 12:26:00        nick.sho...@gmail.com     No
2  18348 2011-07-11 10:47:16 ralf%and...@gtempaccount.com     No
3  18348 2011-07-11 17:44:50           tnor...@google.com    Yes
4  18348 2011-07-11 18:13:17             nic...@gmail.com     No
5  18348 2011-07-11 18:14:39        nick.sho...@gmail.com     No
6  18348 2011-07-11 18:23:54        nick.sho...@gmail.com     No
7  18348 2011-07-13 14:36:31           vt903...@gmail.com     No
8  18348 2011-07-15 18:16:12           tnor...@google.com    Yes
9  18348 2011-07-15 18:17:54           tnor...@google.com    Yes
10 18348 2011-07-26 06:35:04           hustd...@gmail.com     No
11 18348 2011-09-04 21:34:03        baykalca...@gmail.com     No
12 18348 2011-09-13 23:14:20           tnor...@google.com    Yes
13 18348 2011-10-19 18:49:22             x...@android.com     No

输入(df)

structure(list(bugid = c(18348L, 18348L, 18348L, 18348L, 18348L, 
18348L, 18348L, 18348L, 18348L, 18348L, 18348L, 18348L, 18348L
), timestamp = structure(1:13, .Label = c("2011-07-10 12:26:00", 
"2011-07-11 10:47:16", "2011-07-11 17:44:50", "2011-07-11 18:13:17", 
"2011-07-11 18:14:39", "2011-07-11 18:23:54", "2011-07-13 14:36:31", 
"2011-07-15 18:16:12", "2011-07-15 18:17:54", "2011-07-26 06:35:04", 
"2011-09-04 21:34:03", "2011-09-13 23:14:20", "2011-10-19 18:49:22"
), class = "factor"), commenter = structure(c(4L, 5L, 6L, 3L, 
4L, 4L, 7L, 6L, 6L, 2L, 1L, 6L, 8L), .Label = c("baykalca...@gmail.com", 
"hustd...@gmail.com", "nic...@gmail.com", "nick.sho...@gmail.com", 
"ralf%and...@gtempaccount.com", "tnor...@google.com", "vt903...@gmail.com", 
"x...@android.com"), class = "factor"), Owner. = structure(c(1L, 
1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L), .Label = c("No", 
"Yes"), class = "factor")), class = "data.frame", row.names = c(NA, 
-13L))

然后我执行以下操作:

df$date <- as.Date(df$timestamp)

数据集因此变为:

df
   bugid           timestamp                    commenter Owner.       date
1  18348 2011-07-10 12:26:00        nick.sho...@gmail.com     No 2011-07-10
2  18348 2011-07-11 10:47:16 ralf%and...@gtempaccount.com     No 2011-07-11
3  18348 2011-07-11 17:44:50           tnor...@google.com    Yes 2011-07-11
4  18348 2011-07-11 18:13:17             nic...@gmail.com     No 2011-07-11
5  18348 2011-07-11 18:14:39        nick.sho...@gmail.com     No 2011-07-11
6  18348 2011-07-11 18:23:54        nick.sho...@gmail.com     No 2011-07-11
7  18348 2011-07-13 14:36:31           vt903...@gmail.com     No 2011-07-13
8  18348 2011-07-15 18:16:12           tnor...@google.com    Yes 2011-07-15
9  18348 2011-07-15 18:17:54           tnor...@google.com    Yes 2011-07-15
10 18348 2011-07-26 06:35:04           hustd...@gmail.com     No 2011-07-26
11 18348 2011-09-04 21:34:03        baykalca...@gmail.com     No 2011-09-04
12 18348 2011-09-13 23:14:20           tnor...@google.com    Yes 2011-09-13
13 18348 2011-10-19 18:49:22             x...@android.com     No 2011-10-19

我删除了时间戳列,认为该列一定会导致问题:

remove.cols = names(df) %in% c("timestamp")
df.pruned <- df[!remove.cols]

但是,当我尝试使用以下内容生成时间线时:

timelineS(df.pruned)

我得到错误:

Summary.factor(c(4L, 5L, 6L, 3L, 4L, 4L, 7L, 6L, 6L, 2L, 1L, : ‘min’ 对因子没有意义

在阅读有关类似问题的主题后,尝试将日期字段转换为数字。但似乎没有什么能解决问题。 请帮忙。

【问题讨论】:

  • 您应该尝试 dput 使用您的 df 而不是图像 - 更容易帮助和清理问题。
  • 来自帮助:df Data frame for events and dates. First column for event names and second column for dates in Date class.
  • timelineS 来自哪里?我们无法运行此代码——无法在数据集的图片上调用函数——但错误消息说你有一些编码为可能不应该被编码的因素
  • 我已经删除了数据集的图像并包含了文本,以便可以复制它。这是我对表格的第一个问题,因此仍在考虑如何正确包含表格。 df 是我在 R 中的数据集的名称。
  • @ReshmaR 运行 dput(df) 并将该输出复制到您的问题中。

标签: r timeline


【解决方案1】:

timelineS 包的文档指出,您提供给 timelineS 函数的数据框只能包含两列——一列用于事件,另一列用于日期:

https://www.rdocumentation.org/packages/timelineS/versions/0.1.1/topics/timelineS

您的目标是制作一个时间线来显示各种评论者发表 cmets 的日期吗?

如果是这样,只需将您的数据框剥离到评论者字段和日期字段。

 library(dplyr)
 df_pruned <- df %>%
 select(c("commenter", "date"))

 library(timelineS)
 timelineS(df_pruned)

应该让您开始...您可能想要探索一些格式选项,以使时间线更具视觉吸引力。

【讨论】:

    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 2014-07-06
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2018-08-07
    相关资源
    最近更新 更多