gpt4 book ai didi

r - 从 R 中的 GoogleSheets 中清除列表列表

转载 作者:行者123 更新时间:2023-12-04 00:54:22 26 4
gpt4 key购买 nike

我从 google 表格中检索了一张表格并返回了一个列表列表:

sheet <- list(var1 = list(Sys.time(), Sys.time(),NULL),
var2 = list(NULL,1,2),
var3 = list("a",NULL,"b"))

我必须转换列表中的所有成员 NULL进入NAs .我很好地解释了如何使用例如 sheet$var1[sapply(sheet$var1,is.null)] <- NA 逐个列表地进行操作,但是因为我有很多变量,是否可以只用一行代码呢?任何帮助将不胜感激。

最佳答案

这是一个嵌套列表。所以我们可以做

library(purrr)
map(sheet, ~ map(.x, ~ replace(.x, is.null(.x), NA)))

或者使用 base R

lapply(sheet, function(x) lapply(x, function(y) replace(y, is.null(y), NA)))
#$var1
#$var1[[1]]
#[1] "2020-09-13 16:44:56 CDT"

#$var1[[2]]
#[1] "2020-09-13 16:44:56 CDT"

#$var1[[3]]
#[1] NA


#$var2
#$var2[[1]]
#[1] NA

#$var2[[2]]
#[1] 1

#$var2[[3]]
#[1] 2


#$var3
#$var3[[1]]
#[1] "a"

#$var3[[2]]
#[1] NA

#$var3[[3]]
#[1] "b"

或者使用 rrapply 递归地执行此操作

library(rrapply)
rrapply(sheet, f = function(x) replace(x, is.null(x), NA), how = "list")

关于r - 从 R 中的 GoogleSheets 中清除列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63875868/

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