【问题标题】:Splitting column of strings into two columns R [duplicate]将字符串列拆分为两列R [重复]
【发布时间】:2021-12-28 17:34:03
【问题描述】:

我有一个包含“day”列的 df,其中包含格式为 "2020-12-31 19:00:00" 的字符串 我想将此字符串拆分为两列,以便一列包含日期"2020-12-31",第二列包含时间19:00:00。我试过了

str_split_fixed(df$day, " ", 2)

但我得到了错误:

Error in df$day : object of type 'closure' is not subsettable

还有其他方法可以做到这一点吗?谢谢!

【问题讨论】:

  • 请显示小例子的输出。您显示的代码应该可以正常工作
  • 我在运行您的代码时遇到同样的错误,因为 df$day 未定义(因为 df 是 R 中的一个函数,又名 closure 类型)。你确定你有正确的数据框名称吗?使用@Paul Smith 的答案创建 df 后,您的原始代码运行良好。
  • 当我说它有效时,我假设df 是一个使用day 作为列创建的对象

标签: r dataframe split


【解决方案1】:
library(tidyverse)

# data
df <- tibble(x = "2020-12-31 19:00:00")

df %>% 
  mutate(x = str_split_fixed(x, " ", 2))

输出:

  x[,1]      [,2]    
  <chr>      <chr>   
1 2020-12-31 19:00:00

【讨论】:

    【解决方案2】:

    一个可能的解决方案:

    library(tidyverse)
    
    df <- data.frame(day = "2020-12-31 19:00:00")
    
    df %>% 
      separate(day, into = c("day", "time"), sep = " ")
    
    #>          day     time
    #> 1 2020-12-31 19:00:00
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2020-01-19
      • 2015-08-01
      • 1970-01-01
      • 2016-03-24
      • 2021-10-29
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      相关资源
      最近更新 更多