R中的列表数组-将它们转换为原点
在R中,我有一个名为“test[[]]”的列表数组,其中的列表表示如下数据: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
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")