R中的列表数组-将它们转换为原点

R中的列表数组-将它们转换为原点,r,arrays,list,R,Arrays,List,在R中,我有一个名为“test[[]]”的列表数组,其中的列表表示如下数据: X44231 X44232 X44233 X44234 X44235 X44236 X44237 X44238 1 100 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 0 0 0

在R中,我有一个名为“test[[]]”的列表数组,其中的列表表示如下数据:

X44231 X44232 X44233 X44234 X44235 X44236 X44237 X44238
1     100      0      0      0      0      0      0      0
2       0      0      0      0      0      0      0      0
3       0      0      0      0      0      0      0      0
4     100      0      0      0      0      0    200      0
5       0      0      0      0      0      0      0      0
6     700    900      0      0   1100   1200   1200   1200
7       0      0      0      0      0      0      0      0
8       0      0      0      0      0      0      0      0
9       0      0      0      0      0      0      0      0
10      0      0      0      0      0      0      0      0
11      0      0      0      0      0      0      0      0
12      0      0      0      0      0      0      0      0
13      0      0      0      0      0      0      0      0
14      0      0      0      0      0      0      0      0
15      0      0      0      0      0      0      0      0
有些列使用X和数字命名,我需要将它们转换为origin=“1899-12-30”,但我不知道如何将此规则应用于列标题,并且仍然不使用X(注意:否是我必须应用此转换的所有列)

转换示例:

as.Date(44228, origin = "1899-12-30")

我希望这就是你要找的

库(tidyverse)
阅读表格(text=“X44231 X44232 X44233 X44234 X44235 X44236 X44237 X44238
1     100      0      0      0      0      0      0      0
2       0      0      0      0      0      0      0      0
3       0      0      0      0      0      0      0      0
4     100      0      0      0      0      0    200      0
5       0      0      0      0      0      0      0      0
6     700    900      0      0   1100   1200   1200   1200
7       0      0      0      0      0      0      0      0
8       0      0      0      0      0      0      0      0
9       0      0      0      0      0      0      0      0
10      0      0      0      0      0      0      0      0
11      0      0      0      0      0      0      0      0
12      0      0      0      0      0      0      0      0
13      0      0      0      0      0      0      0      0
14      0      0      0      0      0      0      0      0
15 0 0”,收割台=T)->df
名称(df)%>%
str_删除(“X”)%%>%
as.numeric()%>%
截止日期(origin=“1899-12-30”)->c_名称
姓名(df)2021-02-04 2021-02-05 2021-02-06 2021-02-07 2021-02-08 2021-02-09 2021-02-10
#> 1         100          0          0          0          0          0          0
#> 2           0          0          0          0          0          0          0
#> 3           0          0          0          0          0          0          0
#> 4         100          0          0          0          0          0        200
#> 5           0          0          0          0          0          0          0
#> 6         700        900          0          0       1100       1200       1200
#> 7           0          0          0          0          0          0          0
#> 8           0          0          0          0          0          0          0
#> 9           0          0          0          0          0          0          0
#> 10          0          0          0          0          0          0          0
#> 11          0          0          0          0          0          0          0
#> 12          0          0          0          0          0          0          0
#> 13          0          0          0          0          0          0          0
#> 14          0          0          0          0          0          0          0
#> 15          0          0          0          0          0          0          0
#>    2021-02-11
#> 1           0
#> 2           0
#> 3           0
#> 4           0
#> 5           0
#> 6        1200
#> 7           0
#> 8           0
#> 9           0
#> 10          0
#> 11          0
#> 12          0
#> 13          0
#> 14          0
#> 15          0

由(v0.3.0)创建于2021-02-05我希望这就是您想要的

库(tidyverse)
阅读表格(text=“X44231 X44232 X44233 X44234 X44235 X44236 X44237 X44238
1     100      0      0      0      0      0      0      0
2       0      0      0      0      0      0      0      0
3       0      0      0      0      0      0      0      0
4     100      0      0      0      0      0    200      0
5       0      0      0      0      0      0      0      0
6     700    900      0      0   1100   1200   1200   1200
7       0      0      0      0      0      0      0      0
8       0      0      0      0      0      0      0      0
9       0      0      0      0      0      0      0      0
10      0      0      0      0      0      0      0      0
11      0      0      0      0      0      0      0      0
12      0      0      0      0      0      0      0      0
13      0      0      0      0      0      0      0      0
14      0      0      0      0      0      0      0      0
15 0 0”,收割台=T)->df
名称(df)%>%
str_删除(“X”)%%>%
as.numeric()%>%
截止日期(origin=“1899-12-30”)->c_名称
姓名(df)2021-02-04 2021-02-05 2021-02-06 2021-02-07 2021-02-08 2021-02-09 2021-02-10
#> 1         100          0          0          0          0          0          0
#> 2           0          0          0          0          0          0          0
#> 3           0          0          0          0          0          0          0
#> 4         100          0          0          0          0          0        200
#> 5           0          0          0          0          0          0          0
#> 6         700        900          0          0       1100       1200       1200
#> 7           0          0          0          0          0          0          0
#> 8           0          0          0          0          0          0          0
#> 9           0          0          0          0          0          0          0
#> 10          0          0          0          0          0          0          0
#> 11          0          0          0          0          0          0          0
#> 12          0          0          0          0          0          0          0
#> 13          0          0          0          0          0          0          0
#> 14          0          0          0          0          0          0          0
#> 15          0          0          0          0          0          0          0
#>    2021-02-11
#> 1           0
#> 2           0
#> 3           0
#> 4           0
#> 5           0
#> 6        1200
#> 7           0
#> 8           0
#> 9           0
#> 10          0
#> 11          0
#> 12          0
#> 13          0
#> 14
#reproducible example
df <- as.data.frame(matrix(c(100,0,0,100),2))
colnames(df) <- c("X44231", "X44232")

#actual code
colnames(df) <- as.Date(as.numeric(gsub("X","",colnames(df))), origin = "1899-12-30")
df
  2021-02-04 2021-02-05
1        100          0
2          0        100
convertDate <- function(x){
  y <- sub("^X", "", x)
  d <- as.Date(as.integer(y), origin = "1899-12-30")
  na <- is.na(d)
  d[na] <- x[na]
  d
}

convertDate(x)
#[1] "2021-02-04" "2021-02-05" "2021-02-06" "2021-02-07"
#[5] "2021-02-08" "2021-02-09" "2021-02-10" "2021-02-11"
names(test) <- convertDate(names(test))
x <- scan(what = character(),
          text = "X44231 X44232 X44233 X44234 X44235 X44236 X44237 X44238")