gpt4 book ai didi

r - 如何将函数应用于 R 中小标题列表的每一行?

转载 作者:行者123 更新时间:2023-12-04 09:13:05 25 4
gpt4 key购买 nike

我有 20 个不同的 tibbles(称为 N1 到 N20),每个在 R 中有 9 列和大约 200 万行。
在第 8 列(类型:整数)中,我想更改日期。每个 tibble 的每列编号 8 中的条目始终相同,始终编号为“14190”
我不想写:

N1[,8] <- lapply(N1[,8], function(x) format(as.Date(as.numeric(x),origin="1970-01-01"), "%Y-%m-%d"))
N2[,8] <- lapply(N2[,8], function(x) format(as.Date(as.numeric(x),origin="1970-01-01"), "%Y-%m-%d"))
N3[,8] <- lapply(N3[,8], function(x) format(as.Date(as.numeric(x),origin="1970-01-01"), "%Y-%m-%d"))
...
N20[,8] <- lapply(N20[,8], function(x) format(as.Date(as.numeric(x),origin="1970-01-01"), "%Y-%m-%d"))

我的第一个想法是从 N1-N20 设置一个列表,但后来我的函数遇到了问题,因为它需要整数作为参数。
有什么快速的解决办法吗?也许没有lapply?
谢谢!

最佳答案

第一的。您不需要在 df 的行上循环(= lapply)来转换列。第二。可以像这样转换所有 20 个 df:

N1 <- N2 <- data.frame(col1 = runif(10), col2 = rep(14190, 10))

lapply(1:2, function(x) { d <- get(paste0("N", x)); d[[2]] <- format(as.Date(as.numeric(d[[2]]),origin="1970-01-01"), "%Y-%m-%d"); d })
#> [[1]]
#> col1 col2
#> 1 0.6086402 2008-11-07
#> 2 0.2982811 2008-11-07
#> 3 0.7500646 2008-11-07
#> 4 0.7203713 2008-11-07
#> 5 0.4445544 2008-11-07
#> 6 0.7837107 2008-11-07
#> 7 0.2335820 2008-11-07
#> 8 0.2021103 2008-11-07
#> 9 0.1840012 2008-11-07
#> 10 0.7598002 2008-11-07
#>
#> [[2]]
#> col1 col2
#> 1 0.6086402 2008-11-07
#> 2 0.2982811 2008-11-07
#> 3 0.7500646 2008-11-07
#> 4 0.7203713 2008-11-07
#> 5 0.4445544 2008-11-07
#> 6 0.7837107 2008-11-07
#> 7 0.2335820 2008-11-07
#> 8 0.2021103 2008-11-07
#> 9 0.1840012 2008-11-07
#> 10 0.7598002 2008-11-07

关于r - 如何将函数应用于 R 中小标题列表的每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63314742/

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