我有一个名为列表的列表(包含数据框)。
l_of_lists <- list(
fruits = list(
red = data.frame("apple", "cherry", "strawberry"),
yellow = data.frame("banana", "lemon"),
orange = data.frame("orange", "grapefruit", "blood orange")),
colors = list(
green = data.frame("light green", "green", "dark green"),
red = data.frame("red", "dark red"),
blue = data.frame("light blue", "blue", "dark blue")),
places = list(
inside = data.frame("living room", "bathrooom", "kitchen"),
outside = data.frame("garden", "yard"),
neighborhood = data.frame("playground", "shop", "school"))
)
我正在循环遍历的,以确定每个数据框的列数,并且我想删除不满足条件的每个(在本例中是拥有三列)。使用以下代码:
for (ls in l_of_lists){
for (sublist in ls){
if (!ncol(sublist) == 3)
{
print(ncol(sublist))
#sublist <- NULL # this does achieve the desired result
}
}
}
我该如何删除符合条件的子列表? (我相信有更有效的方法来完成此操作,如果您有提示,请告诉我。)
sublist
并不是指向l_of_lists
中原本对象的指针,而是在每次循环周期内创建一个全新的对象(然后将其赋值为NULL
)。 - rookie