假设我有以下结构:
R-代码
listAll = list()
list3 = list(id=14,attr1 = '',attr2='n4',attr3=list(text1='tx1',text2=''))
list4 = list(id=15,attr1 = '',attr2='n1',attr3=list(text1='tx1',text2=''))
listAll = append(listAll,list(values=list3))
listAll = append(listAll,list(values=list4))
str(listAll)
#result
List of 2
$ values:List of 4
..$ id : num 14
..$ attr1: chr ""
..$ attr2: chr "n4"
..$ attr3:List of 2
.. ..$ text1: chr "tx1"
.. ..$ text2: chr ""
$ values:List of 4
..$ id : num 15
..$ attr1: chr ""
..$ attr2: chr "n1"
..$ attr3:List of 2
.. ..$ text1: chr "tx1"
.. ..$ text2: chr ""
我如何设置/获取属于id 14的attr2?
我认为这并不困难......我所要做的就是(获得):
不幸的是,我不知道如何完成第一点。
假设我有id = 14和相应的索引1 ..接下来的步骤将是(两个和三个一起):
listAll[[1]]$attr2 #results "n4"
所以问题是如何获得与id = 14匹配的索引(在此示例中为= 1)。 有人可以帮忙吗?
答案 0 :(得分:3)
您可以使用sapply
## sapply(listAll, "[[", "id")
## werte werte
## 14 15
然后你可以申请which
来获得像这样的索引
which(sapply(listAll, "[[", "id") == 14)
## werte
## 1
which(sapply(listAll, "[[", "id") == 15)
## werte
## 2