在RStudio中再次需要帮助来分隔带有日期的列

我想要年、月和日三个单独的栏

可能值得注意的是,该列当前为字符类型

感谢您的努力!

str(fifa21_raw_data$Joined)

chr [1:18979] "Jul 1, 2004" "Jul 10, 2018" "Jul 16, 2014" ...

dput(fifa21_raw_data$Joined[1:20])

c("Jul 1, 2004", "Jul 10, 2018", "Jul 16, 2014", "Aug 30, 2015", 
"Aug 3, 2017", "Jul 1, 2014", "Jul 1, 2018", "Jul 19, 2018", 
"Jul 1, 2017", "Jul 1, 2016", "Jan 1, 2018", "Jul 1, 2014", "Jul 11, 2013", 
"Aug 9, 2018", "Jul 1, 2011", "Jul 9, 2009", "Aug 1, 2005", "Jul 28, 2011", 
"Jul 16, 2016", "Jul 1, 2015")

推荐答案

如果您需要将月份设置为(例如)"Jul",则只需:

do.call(rbind, strsplit(vec, "[, ]+"))
#       [,1]  [,2] [,3]  
#  [1,] "Jul" "1"  "2004"
#  [2,] "Jul" "10" "2018"
#  [3,] "Jul" "16" "2014"
#  [4,] "Aug" "30" "2015"
#  [5,] "Aug" "3"  "2017"
#  [6,] "Jul" "1"  "2014"
#  [7,] "Jul" "1"  "2018"
#  [8,] "Jul" "19" "2018"
#  [9,] "Jul" "1"  "2017"
# [10,] "Jul" "1"  "2016"
# [11,] "Jan" "1"  "2018"
# [12,] "Jul" "1"  "2014"
# [13,] "Jul" "11" "2013"
# [14,] "Aug" "9"  "2018"
# [15,] "Jul" "1"  "2011"
# [16,] "Jul" "9"  "2009"
# [17,] "Aug" "1"  "2005"
# [18,] "Jul" "28" "2011"
# [19,] "Jul" "16" "2016"
# [20,] "Jul" "1"  "2015"

如果你需要它作为一个月数,那么

as.Date(vec, format = "%b %d, %Y") |>
  as.character() |>
  strsplit("-") |>
  do.call(rbind, args=_)
#       [,1]   [,2] [,3]
#  [1,] "2004" "07" "01"
#  [2,] "2018" "07" "10"
#  [3,] "2014" "07" "16"
#  [4,] "2015" "08" "30"
#  [5,] "2017" "08" "03"
#  [6,] "2014" "07" "01"
#  [7,] "2018" "07" "01"
#  [8,] "2018" "07" "19"
#  [9,] "2017" "07" "01"
# [10,] "2016" "07" "01"
# [11,] "2018" "01" "01"
# [12,] "2014" "07" "01"
# [13,] "2013" "07" "11"
# [14,] "2018" "08" "09"
# [15,] "2011" "07" "01"
# [16,] "2009" "07" "09"
# [17,] "2005" "08" "01"
# [18,] "2011" "07" "28"
# [19,] "2016" "07" "16"
# [20,] "2015" "07" "01"

它们都返回包含三列的matrix,您可以转换为data.frame并使用类似于以下内容的名称来命名这些列:

... |>
  as.data.frame() |>
  setNames(c("Year", "Month", "Day"))

如果需要,cbind或以其他方式指定给当前帧.

R相关问答推荐

多个ggpredicate对象的平均值

如何从其他前面列中减go 特定列的平均值?

使用预定值列表将模拟数量(n)替换为rnorm()

如何按排序顺序打印一个框架中所有精确的唯一值?

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

基于多列将值链接到NA

在R中将特定列的值向右移动

单个轮廓重叠条的单独图例

如何调整曲线图中的y轴标签?

即使硬币没有被抛出,也要保持对其的跟踪

我正在努力用R计算数据集中的中值逐步距离

如何使用tryCatch执行语句并忽略警告?

汇总数据的Sheffe检验的P值(平均值和标准差)

R:如果为NA,则根据条件,使用列名模式将缺少的值替换为另一列中的值

R中的类别比较

如何平滑或忽略R中变量的微小变化?

防止正则表达式覆盖以前的语句

避免在图例中显示VLINS组

将CSV转换为R中的自定义JSON格式

将y轴格式更改为R中的百分比