我想创建一个空列表,该列表采用数据框的名称,并根据数据框的名称在其中包含空元素
import json
with open('file1.json','r') as a:
data1 = a.read()
obj1 = json.loads(data1)
with open('file2.json','r') as a:
data2 = a.read()
obj2 = json.loads(data2)
count = 0
for i in obj1:
a = obj2[count]
if i["r_id"] != a["id"]:
print(i)
count = count + 1
我希望能够运行
my_list_function <- function(thedata) {
list(
x = map(names(x), ~ .x = list())
))
}
并获得输出:
my_list_function(mtcars)
答案 0 :(得分:3)
使用purrr
:
library(purrr)
map(mtcars, ~ list())
如果您想要列表中数据本身的名称,可以尝试以下操作:
my_list_function <- function(data) {
.data <- rlang::enquo(data)
list(map(data, ~ list())) %>%
set_names(rlang::as_name(.data))
}
my_list_function(mtcars)
答案 1 :(得分:1)
我们可以使用setNames
my_list_function <- function(data) {
nm1 <- deparse(substitute(data))
setNames(list( setNames(rep(list(list()), length(data)), names(data))), nm1)
}
my_list_function(mtcars)
#$mtcars
#$mtcars$mpg
#list()
#$mtcars$cyl
#list()
#$mtcars$disp
#list()
#$mtcars$hp
#list()
# ...
或使用purrr
library(purrr)
library(dplyr)
my_list_function <- function(data) {
lst(!! enquo(data) := map(data, ~ list()))
}
my_list_function(mtcars)
#$mtcars
#$mtcars$mpg
#list()
#$mtcars$cyl
#list()
#$mtcars$disp
#list()
#$mtcars$hp
#list()
# ...