0

我有一个数据集,其列名看起来像这样。

输入

Country  X1.22.20 X1.23.20 X1.24.20 X1.25.20 X1.26.20 X1.27.20 
    India      40        20      30       21       25      28
    USA        21        22      23       45       32      19
    CHINA      30        45      32       46       78      48

X1.22.20 代表 1/22/2020

所需输出

Country  01/22/20 01/23/20 01/24/20 01/25/20 01/26/20 01/27/20 
     India      40        20      30       21       25      28
     USA        21        22      23       45       32      19
     CHINA      30        45      32       46       78      48
4

1 回答 1

1

我们可以避免这种转换,如果我们阅读check.names = FALSE

df1 <- read.csv('file.csv', check.names = FALSE, stringsAsFactors = FALSE)

如果我们已经在没有check.names = FALSE选项的情况下阅读了它,请转换为Date类,然后format

names(df1)[-1] <- format(as.Date(names(df1)[-1], format = "X%m.%d.%y"), "%m/%d/%y")

或者另一种选择是sub

names(df1)[-1] <- sub("^X(\\d+)\\.(\\d+)\\.(\\d+)", "\\1/\\2/\\3", names(df1)[-1])
于 2020-03-22T20:46:43.750 回答