Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将未命名的常规结构化R列表转换为命名R列表_R - Fatal编程技术网

将未命名的常规结构化R列表转换为命名R列表

将未命名的常规结构化R列表转换为命名R列表,r,R,我有一个奇怪的R列表,其中作为字符串的奇数列表元素应该是偶数列表元素的名称。有些元素是列表中的列表。列表的深度不是预先定义的。列表的简化结构大致如下: a <- list("key0", "value0", "key", list("key1", "value1", "key2", "value2", "key3", list("key6", "value6"),

我有一个奇怪的R列表,其中作为字符串的奇数列表元素应该是偶数列表元素的名称。有些元素是列表中的列表。列表的深度不是预先定义的。列表的简化结构大致如下:

a <- list("key0",
          "value0",
          "key",
          list("key1", "value1",
               "key2", "value2", 
               "key3",  list("key6", "value6"),
               "key4", "value4",
               "key5", list(list(list("key7", "value7")))
          ))

类似list
a
的数据结构是否有特殊的技术名称?

使用递归函数:

fun <- function(x){
  x <- lapply(x,function(y) if (is.list(y)) y <- fun(y) else y)
  if(!is.null(names(x)) | length(x) == 1) return(x)
  x <- setNames(x[seq_along(x)%%2 == 0], x[seq_along(x)%%2 == 1])
  x
}
res <- fun(a)

identical(b,res)
# [1] TRUE

fun使用递归函数:

fun <- function(x){
  x <- lapply(x,function(y) if (is.list(y)) y <- fun(y) else y)
  if(!is.null(names(x)) | length(x) == 1) return(x)
  x <- setNames(x[seq_along(x)%%2 == 0], x[seq_along(x)%%2 == 1])
  x
}
res <- fun(a)

identical(b,res)
# [1] TRUE

fun在R中没有名字,尽管它是JSON结构导入R后的样子。
b在R中没有名字,尽管它是JSON结构导入R后的样子。
b