Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Lapply_Sapply - Fatal编程技术网

获取R中列表的列表元素的长度

获取R中列表的列表元素的长度,r,list,lapply,sapply,R,List,Lapply,Sapply,以下是我的dico列表: dico <- list(list(list(c("dim.", "dimension", "dimensions", "mesures" ), c("45 cm", "45", "45 CM", "0.45m")), list(c("tamano", "volumen", "dimension", "talla"), c("45 cm", "45", "0.45 M", "45 centimiento" )), list(c("measures", "dime

以下是我的dico列表:

dico <- list(list(list(c("dim.", "dimension", "dimensions", "mesures"
), c("45 cm", "45", "45 CM", "0.45m")), list(c("tamano", "volumen", 
"dimension", "talla"), c("45 cm", "45", "0.45 M", "45 centimiento"
)), list(c("measures", "dimension", "measurement"), c("45 cm", 
"0.45 m", "100 inches", "100 pouces"))), list(list(c("poids", 
"poid", "poids net"), c("100 grammes", "100 gr", "100")), list(
    c("peso", "carga", "peso especifico"), c("100 gramos", "100g", 
    "100", "100 g")), list(c("weight", "net wieght", "weight (grammes)"
), c("100 grams", "100", "100 g"))), list(list(c("Batterie oui/non", 
"batterie", "présence batterie"), c("Oui", "batterie", "OUI"
)), list(c("bateria", "bateria si or no", "bateria disponible"
), c("si", "bateria furnindo", "1")), list(c("Battery available", 
"battery", "battery yes or no"), c("yes", "Y", "Battery given"
))))
我想得到列表中所有元素的所有长度。所以我想要一个如下的输出:

[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
[1] 3   

[[1]][[1]][[2]]
[1] 4


[[1]][[2]]
[[1]][[2]][[1]]
[1] 4   

[[1]][[2]][[2]]
[1] 4


[[1]][[3]]
[[1]][[3]][[1]]
[1] 3

[[1]][[3]][[2]]
[1] 4



[[2]]
[[2]][[1]]
[[2]][[1]][[1]]
[1] 3

[[2]][[1]][[2]]
[1] 3      


[[2]][[2]]
[[2]][[2]][[1]]
[1] 3

[[2]][[2]][[2]]
[1] 4  


[[2]][[3]]
[[2]][[3]][[1]]
[1] 3

[[2]][[3]][[2]]
[1] 3
...

我知道我应该用lappy,sapply之类的东西,但我被困了好几个小时。你会怎么做?

我们可以使用递归版本的
lappy
,即
rappy

rl <- rapply(dico, length, how="list")
rl
#[[1]]
#[[1]][[1]]
#[[1]][[1]][[1]]
#[1] 4

#[[1]][[1]][[2]]
#[1] 4


#[[1]][[2]]
#[[1]][[2]][[1]]
#[1] 4

#[[1]][[2]][[2]]
#[1] 4
#---
rl您可能需要
lappy(dico,函数(x)lappy(x,函数(y)lappy(y,长度))
来获得预期的格式。顺便说一句,对于第一个元素,长度应为4<代码>[1]“dim.“dimension”“dimensions”“mesures”
rl <- rapply(dico, length, how="list")
rl
#[[1]]
#[[1]][[1]]
#[[1]][[1]][[1]]
#[1] 4

#[[1]][[1]][[2]]
#[1] 4


#[[1]][[2]]
#[[1]][[2]][[1]]
#[1] 4

#[[1]][[2]][[2]]
#[1] 4
#---