gpt4 book ai didi

r - cbind 列表中的特定列(没有 dplyr 包)

转载 作者:行者123 更新时间:2023-12-02 15:59:38 25 4
gpt4 key购买 nike

我有一个大约有 50 个(槽)的列表 - 数据帧。此列表(数据框)的每个元素都有10列,其中3列对应“年”、“月”和“日”。如何在该列表的每个数据帧中将这三列合并为一列(通过创建新列),并同时将它们转换为 as.Date 格式而不使用 dplyr 包 .

我正在发送一个可重现的示例:

city_A <- data.frame(year = c(1995,1996,1997),month = c(5,6,9),day = c(1,5,8),ozone = c(0.5,0.9,0.12))
city_D <- data.frame(year = c(1982,1959,1909),month = c(3,10,12),day = c(21,24,30),ozone = c(1.5,2.9,3.14))

town_list <- list(city_A,city_D)

预期结果是这样的:

[[1]]
date year month day ozone
1 1995-05-01 1995 5 1 0.5
2 1996-06-05 1996 6 5 0.9
3 1997-09-08 1997 9 8 0.12

[[2]]
date year month day ozone
1 1982-03-21 1982 3 21 1.5
2 1959-10-24 1959 10 24 2.9
3 1909-12-30 1909 12 30 3.14

最佳答案

使用do.call(rbind, x)

city_A <- data.frame(year = c(1995,1996,1997),month = c(5,6,9),day = c(1,5,8),ozone = c(0.5,0.9,0.12))
city_D <- data.frame(year = c(1982,1959,1909),month = c(3,10,12),day = c(21,24,30),ozone = c(1.5,2.9,3.14))

town_list <- list(city_A,city_D)

do.call(rbind, town_list)
#> year month day ozone
#> 1 1995 5 1 0.50
#> 2 1996 6 5 0.90
#> 3 1997 9 8 0.12
#> 4 1982 3 21 1.50
#> 5 1959 10 24 2.90
#> 6 1909 12 30 3.14

reprex package 于 2022 年 2 月 3 日创建(v2.0.1)

关于r - cbind 列表中的特定列(没有 dplyr 包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70975871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com