【问题标题】:Add a column with a consecutive string to a dataframe in R将具有连续字符串的列添加到 R 中的数据框
【发布时间】:2020-03-24 01:05:26
【问题描述】:

目标:

我有一个数据集,df,它看起来像这样:

   End                      Duration

   1/5/2020 1:50:00 AM       500
   1/6/2020 2:00:00 AM       450
   1/7/2020 1:00:00 AM       800

我想要的结果:

  Username                  Duration

  Tanisha                    500
  Tanisha                    450
  Tanisha                    800

我想将每个 Duration 行的“End”列替换为相同的字符串值。 (我有超过 110,000 行)

输入:

structure(list(End = structure(1:3, .Label = c("1/5/2020 1:50:00 AM", 
"1/6/2020 2:00:00 AM", "1/7/2020 1:00:00 AM"), class = "factor"), 
Duration = c(500L, 450L, 800L)), class = "data.frame", row.names = c(NA, 
-3L))

我认为我可以完成以下任务:

 df[["End"]] <- Tanisha  

但是如何在流程中保留 Duration 列。我不确定是否应该使用 mutate。 任何建议表示赞赏。

【问题讨论】:

  • df$User &lt;- "Tanisha" ?
  • 如果你真的想用dplyr,你可以做df %&gt;% mutate(Username = "Tanisha") %&gt;% select(Username, Duration)

标签: r dplyr tidyverse


【解决方案1】:

不幸的是,找不到与此相关的帖子,因此添加为答案。

您可以直接添加一个新列。

df$Username <- "Tanisha"

#                  End Duration Username
#1 1/5/2020 1:50:00 AM      500  Tanisha
#2 1/6/2020 2:00:00 AM      450  Tanisha
#3 1/7/2020 1:00:00 AM      800  Tanisha

或者dplyr有多种方式:

tibble::add_column(df, Username = 'Tanisha')

或者

dplyr::transmute(df, Username = 'Tanisha', Duration)

【讨论】:

  • 谢谢,为了将列名从一个更改为另一个,我可以使用 dplyr 吗? (同时保留数据框)
  • 是的,有rename_atrename_allset_names来更改列名。
  • 我需要重命名一列,同时保留我的数据集,这不起作用:df %>% rename(Aggregation = Duration)
  • 它一直告诉我 Duration is not found,但是,这是我希望创建的名称或将聚合列更改为 @ronak
【解决方案2】:

我们可以使用

df$Username <- 'Tanisha'

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多